LLVM Weekly - #88, Sep 7th 2015
Welcome to the eighty-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 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
The biggest news from the past week is of course the release of LLVM and Clang 3.7. See the LLVM release notes and the Clang release notes for more details.
Slides from the 2015 GNU Tools Cauldron are now available online.
Version 1.12 of TCE, the TTA-based co-design environment has been released.
On the mailing lists
David Li has posted an RFC on reducing the size overhead for profile-guided optimisation. He observes that right now, Clang's PGO instrumentation increases binary size by 4.6X compared to 2.8X or GCC.
The Hip-Hop Virtual Machine team (a JITting virtual machine for PHP and Hack) have been looking at utilising LLVM as a backend. As part of this work, they've generated a number of patches that they're now looking to upstream. Sanjoy and Philip (Azul) have volunteered to help review the patches. With active work on Java (Azul), MSIL/C# (Microsoft), Python (Dropbox) and now PHP/Hack (Facebook) there seems to be a growing number of teams looking at improving LLVM when used for optimising higher-level languages.
Dylan McKay has been maintaining and developing an AVR backend for LLVM out of tree, and is now interested in merging it upstream.
Steve King is proposing a new LoopExitValues pass which aims to remove recomputations of loop exit values. This follow-up message perhaps makes it clearer what the pass does.
Teresa Johnson continues to work on ThinLTO and has now shared a revamped ThinLTO file format document. She's also created this handy website to track the current RFCs and patches for ThinLTO.
John Regehr has shared some results from Souper that point to areas where computeKnownBits could be improved.
I missed this last week, but Ben Craig has been looking at ways to improve the speed of Clang's static analyzer. Ted Kremenek gives some useful general guidance.
LLVM commits
The LLVM plugin for the gold linker now supports parallel LTO code generation. r246584.
The 'unpredictable' metadata annotation is now supported. This can be used to signal that a branch or switch is unpredictable. r246888.
A tool built on libFuzzer to fuzz llvm-as has been added. r246458.
The FunctionAttrs pass learned to infer nonnull attributes on returns. r246476.
Work on Windows exception handling continues with the addition of the cleanupendpad instruction and the llvm.eh.exceptionpointer intrinsic. r246751, r246752.
Clang commits
Basic support for the WebAssembly target landed in Clang. Basic codegen is supported, but not yet assembling or linking. r246814.
Clang will now warn when you reference object members from a handler of a constructor/destructor function-try-block. r246548.
Clang learnt the
__builtin_unpredictable
builtin, which will generate the newly added unpredictable metadata. r246699.