LLVM Weekly - #158, Jan 9th 2017
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. Subscribe to future issues at https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to asb@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.
The Alive tool for proving the correctness of peephole optimisations is now available online.
The program for the LLVM performance workshop at CGO has been announced. It will take place on Saturday February 4th in Austin, Texas.
The next LLVM social in Paris has been announced 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++.
On the mailing lists
-
Rui Ueyama shares a major milestone for LLD. 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.
-
Richard Smith proposes that Clang should not delete null-pointer checks based on
__attribute__((nonnull))
on libc functions like memcpy. A follow-up message provides further justification. -
Davide Italiano has re-summarised and updated his proposal for fixing sparse conditional constant propagation in the presence of undef.
-
Alex Denisov has shared some initial results from a new LLVM-based mutation testing tool.
-
Sanjoy Das has posted an RFC on allowing readnone and readonly functions to throw exceptions. 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. There seems to be support for this so far, and Chandler has summarised the remaining details to be decided.
-
Peter Smith has shared an RFC on supporting range extension thinks in LLD. 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.
-
The packing of the DwarfDebugLine::Row struct has been optimized from 32-bytes to 24-bytes on 64-bit. r290931.
-
The PriorityWorklist in LLVM's ADT library gained support for bulk insertion. r290952.
-
The in-tree copy of googletest has been updated to 1.8.0. r291029.
-
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.
-
A new WebAssembly pass has been added which replaces bitcasted function addresses with wrappers to replace the bitcasts. r291315.
Clang commits
-
Support for the AVR target was added to Clang. r291082.
-
The
-Wtautological-overlap-compare
warning will now fire in more cases. r290920.
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.
-
Support for building libc++ without an ABI library (such as libc++abi) has been fixed. r290849.
-
The libc++ threading support API has been documented. r291275.
-
LLD's
--reproduce
can now produce a .tar archive instead of cpio. r291210.