LLVM Weekly - #127, June 6th 2016
Welcome to the one hundred and twenty-seventh 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 http://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.
The canonical home for this issue can be found here at llvmweekly.org.
News and articles from around the web
Graham Markall at Embecosm has been comparing the code size of RISC-V binaries produced by the GCC and LLVM ports, as well as compared to ARM. GCC is currently ahead, though it is worth noting the LLVM port has seen much less attention.
Matthias Reisinger is a Google Summer of Code student working on enabling polyhedral optimisations for the Julia programming language. He's written a blog post detailing his initial steps and immediate future plans. Hopefully we'll see more posts over the summer.
Loïc Hamot has been working on a C++ to D converter, implemented using Clang.
The MSVC team have blogged about the latest release of Clang with Microsoft CodeGen, based on Clang 3.8.
There is going to be a clang-tidy code dojo in Warsaw on Tuesday the 7th of June.
On the mailing lists
Renato Golin has kicked off a discussion on moving LLVM's repository hosting to GitHub. Chris Lattner came out in favour, specifically motivated by GitHub's community aspects. Renato has very helpfully summarised the discussion.
Peter Smith has shared his initial port of LLD to ARM along with his planned roadmap. The currently submitted patch is just enough to link a hello world executable on ARM Linux.
The apt repo hosted at llvm.org has been temporarily turned off as it is resulting in excessive I/O and network activity. Some commenters ask about setting up an Ubuntu PPA or using the OpenSUSE build service.
David Blaikie has written a GDB pretty printer script for some common LLVM types and described how to use it.
Michael LeMay has posted an RFC on using segmentation to harden SafeStack.
Rui Ueyama has been investigating using sendfile to copy file contents in LLD and shares his results. He concludes the performance improvement is too modest to be worth the change.
If you're interested in register allocation, then delve in to this thread on LLVM's PBQP allocator and copy propagation.
Daniel Dunbar is suggesting some changes to the lit default output.
Steven Wu shares a follow-up RFC on embedded bitcode.
There's a useful discussion in this thread on lowering loops to use a hardware loop instruction.
Peter Collingbourne proposes renaming and slightly redesigning the bitset metadata.
LLVM commits
LLVM gained support for 'SJLJ' (setjmp/longjmp) exception handling on x86 targets. r271244.
LLVM now requires CMake 3.4.3 to build r271325.
Support was added for attaching metadata to global variables. r271348.
The AArch64 backend switched to use SubtargetFeatures rather than testing for specific CPUs. r271555.
Clang commits
The release notes have been updated to explain the current level of OpenMP support (full support of non-offloading features of OpenMP 4.5). r271263.
Clang's source-based code coverage has been documented. r271454.