Alex Bradbury via llvm-dev
2017-Jan-09 10:51 UTC
[llvm-dev] LLVM Weekly - #158, Jan 9th 2017
LLVM Weekly - #158, Jan 9th 2017 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/158>. Welcome to the one hundred and fifty-eighth issue of LLVM Weekly, a weekly newsletter (published every Monday) covering developments in LLVM, Clang, and related projects. LLVM Weekly is brought to you by [Alex Bradbury](http://asbradbury.org). Subscribe to future issues at <http://llvmweekly.org> and pass it on to anyone else you think may be interested. Please send any tips or feedback to <asb at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web John Regehr has written up a really helpful [tourist's guide to the LLVM source code](http://blog.regehr.org/archives/1453). The Alive tool for proving the correctness of peephole optimisations is [now available online](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108735.html). The program for the [LLVM performance workshop at CGO](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108677.html) has been announced. It will take place on Saturday February 4th in Austin, Texas. The next LLVM social in Paris has been [announced](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108698.html) for January 17th. It will feature a talk on the interactions between Polly and other LLVM passes. Shahar Mike has written up a brief [tutorial on using libclang to parse C++](http://shaharmike.com/cpp/libclang/). ## On the mailing lists * Rui Ueyama shares a [major milestone for LLD](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108668.html). It has successfully been used to link the entirety of the FreeBSD/amd64 base system. * The branch for the upcoming 4.0.0 release will take place [on Thursday the 12th of January](lists.llvm.org/pipermail/llvm-dev/2017-January/108696.html). * Richard Smith [proposes](http://lists.llvm.org/pipermail/cfe-dev/2017-January/052066.html) that Clang should not delete null-pointer checks based on `__attribute__((nonnull))` on libc functions like memcpy. A [follow-up](http://lists.llvm.org/pipermail/cfe-dev/2017-January/052068.html) message provides further justification. * Davide Italiano has re-summarised and updated his [proposal for fixing sparse conditional constant propagation in the presence of undef](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108653.html). * Alex Denisov has shared some [initial results from a new LLVM-based mutation testing tool](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108737.html). * Sanjoy Das has posted an RFC on [allowing readnone and readonly functions to throw exceptions](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108637.html). There seems to be support for this proposal to separate the concepts of unwindability and memory effects, though lots of discussion on the details. * Chandler Carruth has proposed [adding gmock to LLVM's unittest utilities](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108672.html). There seems to be support for this so far, and Chandler has [summarised the remaining details to be decided](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108740.html). * Peter Smith has shared an RFC on [supporting range extension thinks in LLD](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108676.html). As he helpfully explains, these are code sequences generated to compensate for the limited range of branch immediate operands. A number of the thread responses discuss the computational complexity of calculating an optimal thunk placement. ## LLVM commits * MetadataLoader will now load metadata lazily. This reduces the link time of the 'opt' binary with ThinLTO and debug info enabled from 282s to 224s. [r291027](http://reviews.llvm.org/rL291027). * The packing of the DwarfDebugLine::Row struct has been optimized from 32-bytes to 24-bytes on 64-bit. [r290931](http://reviews.llvm.org/rL290931). * The PriorityWorklist in LLVM's ADT library gained support for bulk insertion. [r290952](http://reviews.llvm.org/rL290952). * The in-tree copy of googletest has been updated to 1.8.0. [r291029](http://reviews.llvm.org/rL291029). * TargetTransformInfo's getAddressComputationCost can now take a scalar evolution object. This allows TTI to determine whether a given strided access is complex or not. [r291106](http://reviews.llvm.org/rL291106). * A new WebAssembly pass has been added which replaces bitcasted function addresses with wrappers to replace the bitcasts. [r291315](http://reviews.llvm.org/rL291315). ## Clang commits * Support for the AVR target was added to Clang. [r291082](http://reviews.llvm.org/rL291082). * The `-Wtautological-overlap-compare` warning will now fire in more cases. [r290920](http://reviews.llvm.org/rL290920). ## Other project commits * A new benchmark, XSBench was added to the LLVM test suite. This is the first of what intends to be a series of benchmarks imported from the US Department of Energy 'proxy' applications. [r290894](http://reviews.llvm.org/rL290894). * Support for building libc++ without an ABI library (such as libc++abi) has been fixed. [r290849](http://reviews.llvm.org/rL290849). * The libc++ threading support API has been documented. [r291275](http://reviews.llvm.org/rL291275). * LLD's `--reproduce` can now produce a .tar archive instead of cpio. [r291210](http://reviews.llvm.org/rL291210).