LLVM Weekly - #50, Dec 15th 2014 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/50>. Welcome to the fiftieth 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'll be at [MICRO-47](http://www.microarch.org/micro47/) this week. If you're there do say hi, especially if you want to chat about LLVM or lowRISC/RISC-V. ## News and articles from around the web The videos and slides from the 2014 LLVM dev meeting went online last week. I already linked to them then, but there's enough interesting stuff there I think I can justify [linking again](http://llvm.org/devmtg/2014-10/). LLVM/Clang 3.5.1-rc1 [has been tagged](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79743). Volunteer testers are very welcome. Clang UPC 3.4.1 [has been released](http://clangupc.github.io/2014/11/03/clang-upc-3-4-1-1-announcement/). This is a Unified Parallel C compiler that can target SMP systems or [Portals4](http://clangupc.github.io/portals4/). ## On the mailing lists * Discussion has continued on [future plans for GC in LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79435) with input from [Russel Hadley at Microsoft](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79567) and [Ben Karel](article.gmane.org/gmane.comp.compilers.llvm.devel/79581), who seems to be the most extensive user of the existing GC infrastructure with his [Foster language](https://code.google.com/p/foster/). * Chris Bieneman started a discussion about [supporting stripping out unused instrinsics](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79657) with the aim of reducing the size of libLLVM. The proposed patches reduce binary size by [~500k](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79736), which he later points out is more significant in the context of their already size-reduced build. * Marshall Clow has shared a [proposal on how to manage ABI changes in libc++](http://article.gmane.org/gmane.comp.compilers.clang.devel/40061). The proposal involves introducing macros to enable ABI-breaking changes. ## LLVM commits * The LLVM Kaleidoscope tutorial has been extended with an 8th chapter, describing how to add debug information using DWARF And DIBuilder. [r223671](http://reviews.llvm.org/rL223671). A rendered version can be found [here](http://llvm.org/docs/tutorial/LangImpl8.html). * Extensive documentation has been added for the MergeFunctions pass. [r223931](http://reviews.llvm.org/rL223931). * A monster commit to split Metadata from the Value class hierarchy has landed. [r223802](http://reviews.llvm.org/rL223802). * InstrProf has been born. This involves the `llvm.instrprof_increment` instrinsic and the `-instrprof` pass. This moves logic from Clang's CodeGenPGO into LLVM. [r223672](http://reviews.llvm.org/rL223672). * With the addition of support for SELECT nodes, the MIPS backend now supports codegen of MIPS-II targets on the LLVM test-suite. Code generation has also been enabled for MIPS-III. [r224124](http://reviews.llvm.org/rL224124), [r224128](http://reviews.llvm.org/rL224128). * Work has started on an LLVM-based dsymutil tool, with the aim to replace Darwin's dsymutil (a DWARF linker). [r223793](http://reviews.llvm.org/rL224134). * LiveInterval has gained support to track the liveness of subregisters. [r223877](http://reviews.llvm.org/rL223877). * Work has started on converting moves to pushes on X86 when appropriate. [r223757](http://reviews.llvm.org/rL223757). * Print and verify passes are now added after each MachineFunctionPass by default, rather than on some arbitrarily chosen subset. [r224042](http://reviews.llvm.org/rL224059). * LLVM now requires Python 2.7. Previously 2.5 was required. [r224129](http://reviews.llvm.org/rL224129). ## Clang commits * The `__builtin_call_with_static_chain` GNU extension has been implemented. [r224167](http://reviews.llvm.org/rL224167). * Clang's CodeGenPGO has moved to using the new LLVM `-instrprof` pass. [r223683](http://reviews.llvm.org/rL223683). * Clang now accepts Intel microarchitecture names as the `-march` argument. [r223776](http://reviews.llvm.org/rL223776). ## Other project commits * libcxx gained relational operators in std::experimental::optional. [r223775](http://reviews.llvm.org/rL223775). * libcxx can now be built as a 32-bit library. [r224096](http://reviews.llvm.org/rL224096). * The lldb unwinder has learned to use unwind information from the compact-unwind section for x86-64 and i386 on Darwin. [r223625](http://reviews.llvm.org/rL223625).