LLVM Weekly - #165, Feb 27th 2017
Welcome to the one hundred and sixty-fifth 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
The list of accepted sessions for EuroLLVM 2017 has now been announced.
FĂ©lix Cloutier has written a blog post about how C compilers optimise divisions.
This post from Krister Walfridsson looks at heuristics for estimating branch probabilities in GCC, as well as discussing branch prediction more generally.
On the mailing lists
-
Stephen Cross is looking for feedback on his plans to refactor Clang's target-specific ABI logic.
-
Paul Robinson has proposed setting Clang's default C++ dialect to C++11.
-
Johannes Doerfert is still seeking feedback on the Parallel IR proposal and has updated the thread to note initial patches and a documentation draft are now available.
-
Ivan A. Kosarev has shared on RFC on supporting sanitizers on systems without virtual memory support.
-
Hans Wennborg has shared an update on the status of the 4.0.0 release, listing the current blockers.
-
Ashutosh Nema proposes adding support for vectorising epilogue loops generated to handle remaining iterations for loops with unknown iteration counts.
LLVM commits
-
A patch to enable splitting some critical edges from indirect branches has landed. This is motivated by the observation that a clang-compiled Python interpreter can be significantly (2.5x) slower on some workloads than a GCC-compiled interpreter, due to unnecessary spills around the computed goto in the main interpreter loop. r296149.
-
The WebAssembly backend now supports the experimental Wasm object file encoding. r296190.
-
The MemorySSA updater now allows aliasing stores to be added. r295677.
-
Propagation for poison values has been made more aggressive. r295809.
-
An initial X86InstructionSelector has been implemented as part of the work towards X86 GlobalISel support. r295824.
-
The AArch64RedundantCopyElimination pass learned to do simple copy propagation. r295863.
Clang commits
-
When producing UBSan-instrumented code, checks for promoted arithmetic will no longer be generated. r296213.
-
Work has started on refactoring lib/Drive/Tools.cpp, splitting architecture-specific helpers out into separate files. r296056.
Other project commits
-
The LLD introductory documentation has seen a large update, including new link-time performance benchmarks. e.g. a debug build of mysqld takes 7.09s with GNU ld, 2.49s with GNU gold, and 1.31s with LLD. r296072.
-
LLDB gained support for hardware breakpoints on ARM and AArch64 Linux. r296119.
-
New LLD code comments warn about the dangers of copy relocations. r296522, r295632.