LLVM Weekly - #130, Jun 27th 2016
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 asb@asbradbury.org, 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.
LLVM commits
- The new representation for control-flow integrity and virtual call metadata has landed. The commit message further details the problems this change addresses. r273729.
- The
llvm.type.checked.load
intrinsic was added. It loads a function pointer from a virtual table pointer using type metadata. r273576. - As part of the work on CFL-AA, interprocedural function summaries were added. These avoid recomputation for many properties of a function. r273219, r273596.
- 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.
Clang commits
constexpr if
support has been added to Clang. r273602.- clang-tidy has a new
modernize-use-emplace
check that will replace calls ofpush_back
toemplace_back
. r273275. - The CMake build system for Clang gained a
ENABLE_X86_RELAX_RELOCATIONS
option. r273224.