Welcome to the one hundred and thirtieth 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 email@example.com, or @llvmweekly or @asbradbury on Twitter.
If you're reading this on blog.llvm.org then do note this is LAST TIME it will be cross-posted there directly. There is a great effort underway to increase the content on the LLVM blog, and unfortunately LLVM Weekly has the effect of drowning out this content. As ever, you can head to http://llvmweekly.org, subscribe to get it by email, or subscribe to the RSS feed.
The canonical home for this issue can be found here at llvmweekly.org.
News and articles from around the web
After recently being taken down due to excessive resource usage, the LLVM apt repositories are now back.
A detailed introduction to ThinLTO has been published on the LLVM blog. This covers the background, design, current status, and usage information for ThinLTO.
A post on Reddit gives a summary of notable language features voted into the C++17 working draft at the Oulu meeting.
On the mailing lists
Sanjoy Das has written an RFC on strong GC references in LLVM. The motivating case for this proposal is supporting a precise, relocating garbage collector.
LLVM version 3.8.1-final has been tagged.
The Google Summer of Code mid-terms have snuck up on us already. The participating students have posted to the mailing lists with a summary of their work so far:
- Finding and reporting bugs caused by copy and paste
- Enabling LLVM's self-hosted modules builds using libstdc++
- Capture tracking improvements
- Improvement of vectorization process in Polly
- Better alias analysis by default
- Interprocedural register allocation
- Polly as an analysis pass
- Enabling polyhedral optimisations in Julia
Vivek Pandya wrote the mailing list seeking advice on adding a new calling convention for interprocedural register allocation. Matthias Braun summarised some follow-up discussion.
The new representation for control-flow integrity and virtual call metadata has landed. The commit message further details the problems this change addresses. r273729.
llvm.type.checked.loadintrinsic was added. It loads a function pointer from a virtual table pointer using type metadata. r273576.
MemorySSA gained new APIs for PHI creation and MemoryAccess creation. r273295.
Metadata attachments are now allowed for declarations. r273336.
A new runtimes directory was added to the LLVM tree. r273620.
LLVM's dynamic loader gained basic support for COFF ARM. r273682.
constexpr ifsupport has been added to Clang. r273602.
clang-tidy has a new
modernize-use-emplacecheck that will replace calls of
The CMake build system for Clang gained a