LLVM Weekly - #81, Jul 20th 2015 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/81>. Welcome to the eighty-first 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. I'm "on holiday" (at EuroPython) this week in Bilbao, mostly helping out the Raspberry Pi team with the education track. Do say hello, particularly if you want to chat lowRISC, LLVM, or Raspberry Pi. ## News and articles from around the web LLVM 3.6.2 [has been released](http://llvm.org/releases/download.html#3.6.2). LLVM and Clang 3.7 [has been branched](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88108). The team behind Pyston, the LLVM-based Python JIT have written a blog post about [their new object code caching feature](http://blog.pyston.org/2015/07/14/caching-object-code/). ## On the mailing lists * Teresa Johnson has posted an [RFC on ThinLTO symbol linkage and renaming](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88099). * Robert Lougher has written up a [very detailed analysis of a case of poor register allocation](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88092), which may make interesting reading for some. * Chandler Carruth has written up on [RFC on stateful alias analysis in LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88070). The plan assumes the new pass manager. GlobalsModRef is the trickiest case to handle, and Chandler has [written a separate post about the problems with it](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88071). * Hal Finkel is interested in using new functionality introduced in C++11 (such as the final keyword) to [improve devirtualization](http://article.gmane.org/gmane.comp.compilers.clang.devel/43824). The proposal generated quite a lot of discussion. * Juergen Ributzka kicked off a discussion on [improving the maintenance and management of the LLVM C API](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88334). Eric Christopher [suggests moving the C API to another project](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88357), so those who want/require a stable API can take on the burden of keeping it up to date. He [elaborates on his proposal](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88413) in response from Chris Lattner. There seems to be [some support](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88420) for providing C bindings with the same stability guarantees as the C++ API (i.e. it might break between major releases). * Hal Finkel has proposed an [RFC on defining infinite loops in LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/88200). ## LLVM commits * The API to determine callee-save registers has been rewritten. [r242165](http://reviews.llvm.org/rL242165). * The 'debugger tuning' concept has been introduced, allowing the specification of the debugger the debug info should be optimised for. This defaults to lldb on OS X and FreeBSD and GDB for everything else (other than PS4, which defaults to the SCE debugger). [r242388](http://reviews.llvm.org/rL242388). * Intrinsics for absolute difference operations have been introduced. [r242409](http://reviews.llvm.org/rL242409). * The PostRAScheduler has been disabled for the Apple Swift CPU and MachineScheduler is used in place. The commit message argues PostRAScheduler is not a good fit for out-of-order architectures and suggests the same switch might be worth while for other ARM OoO CPUs. [r242500](http://reviews.llvm.org/rL242500). ## Clang commits * Support for armv7-windows-gnu targets has been added to the Clang front-end. [r242292](http://reviews.llvm.org/rL242292). * The clang module container format is now selectable from the command line (raw or obj). [r242499](http://reviews.llvm.org/rL242499). * A minimal AMDGPU toolchain configuration has been added. [r242601](http://reviews.llvm.org/rL242601). ## Other project commits * LLD now supports MIPS big-endian targets. [r242014](http://reviews.llvm.org/rL242014). * LLDB's gdbserver is moving towards being a single-threaded application. [r242018](http://reviews.llvm.org/rL242018). * The OpenMP CMake build system has been massively refactored. [r242298](http://reviews.llvm.org/rL242298).