LLVM Weekly - #62, Mar 9th 2015 ============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/62>. Welcome to the sixth-second 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](http://asbradbury.org). 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 at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web LLVM is taking part in [Google Summer of Code](https://developers.google.com/open-source/soc/) as a mentoring organisation. Students can earn a $5500 stipend by working on open source projects over the summer. See [here](https://www.google-melange.com/gsoc/org/list/public/google/gsoc2015?tag=llvm) for the list of mentoring organisations advertising LLVM-related projects. Please do help spread the word, applications open on Monday the 16th of March. I am biased, but I'd like to draw particular attention to the wide variety of [lowRISC GSoC ideas](http://www.lowrisc.org/docs/gsoc-2015-ideas/), including a project to use tagged memory to provide protection against control-flow hijacking. Ravi, a programming language based on Lua 5.3 has been [announced](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83199). It features JIT compilation using LLVM, though in the current [development version](https://github.com/dibyendumajumdar/ravi) only a fraction of the Lua bytecodes are JIT-compiled. ## On the mailing lists * Douglas Gregor has posted an RFC on [adding nullability qualifiers](http://article.gmane.org/gmane.comp.compilers.clang.devel/41568). The mailing list post justifies the reason for adding new qualifiers despite the fact `__attribute__((nonnull))` exists. * Jonas Paulsson queries the [current status of spilling support in the PBQP register allocator](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83077). As Arnaud confirms, there's still [work to be done](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83079) to improve things. * Chris Bieneman has posted an [update on the CMake build system's ability to replace autoconf](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83067). * Tom Stellard has shared his proposed [release schedule for 3.5.2 and 3.6.1](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83016). This would see 3.5.2 released on the 25th of March and 3.6.1 on the 13th of May. ## LLVM commits * An initial implementation of a loop interchange pass has landed. This will interchange loops to provide a more cache-friendly memory access. [r231458](http://reviews.llvm.org/rL231458). * A high-level support library for the new pass manager has been added. [r231556](http://reviews.llvm.org/rL231556). * The LLVM performance tips document has seen some new additions. [r230995](http://reviews.llvm.org/rL230995), [r231352](http://reviews.llvm.org/rL231352). * DenseMapIterators will now fail fast when compiled in debug mode. [r231035](http://reviews.llvm.org/rL231125). * LowerBitSets will now use byte arrays rather than bit sets to represent in-memory bit sets, which can be looked up with only a few instructions. [r231043](http://reviews.llvm.org/rL231043). * Another large portion of the DebugInfo changes has landed. [r231082](http://reviews.llvm.org/rL231082). * A new optimisation for AddressSanitizer has been added that reduces the amount of instrumentation needed, eliminating it when accessing stack variables that can be proven to be inbounds. [r231241](http://reviews.llvm.org/rL231241). * llvm.frameallocate has been replaced with llvm.frameescape. [r231386](http://reviews.llvm.org/rL231386). ## Clang commits * When the `-pedantic` flag is given, clang will warn when a format string uses `%p` with non-`void*` args. [r231211](http://reviews.llvm.org/rL231211). * Work on MS ABI support continues. Throwing a C++ exception under the MS ABI is now supported. [r231328](http://reviews.llvm.org/rL231328). ## Other project commits * The lld resolver has had a significant performance optimisation. The commit message indicates linking chrome.dll now takes 30 seconds down from 70 seconds. [r231434](http://reviews.llvm.org/rL231434). * The static binary size of lldb-server has been reduced due to a reduction in the number of initialised components. [r230963](http://reviews.llvm.org/rL230963).