Alex Bradbury via llvm-dev
2016-Apr-18 12:56 UTC
[llvm-dev] LLVM Weekly - #120, Apr 18th 2016
LLVM Weekly - #120, Apr 18th 2016 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/120>. Welcome to the one hundred and twentieth 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 This week has seen not one, but two articles about LLVM and profile-guided optimisation. Dig in John Engelen's article about [optimising D's virtual function calls with PGO](https://johanengelen.github.io/ldc/2016/04/13/PGO-in-LDC-virtual-calls.html), then read Geoffroy Couprie's article about [PGO with Rust](https://unhandledexpression.com/2016/04/14/using-llvm-pgo-in-rust/). The next Cambridge (UK) social [will be at 7.30pm on April 20th](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098248.html), at the Cambridge Blue. Alex Denisov has written a blog post [around the idea of building a mutation testing system using LLVM](http://lowlevelbits.org/llvm-based-mutation-testing-system/). ## On the mailing lists * James Knight is [requesting a way to test changes before committing them](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098218.html). Renato Golin had a [thorough response](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098219.html). * Eric Fiselier has shared an [RFC on packaging the proposed libc++ filesystem library](http://lists.llvm.org/pipermail/cfe-dev/2016-April/048411.html). * Teresa Johnson has shared an [RFC on the ThinLTO distributed backend interface](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098272.html). * Jeroen Dobbelaere is wondering if there's [any interest in an LLVM social in Leuven, Belgium](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098303.html). * Mingwha Wang asks if there's any support for [outlining in LLVM](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098227.html). You'll want to [look at CodeExtractor](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098229.html). ## LLVM commits * AtomicExpandPass learned to lower various atomic operations to `__atomic_*` library calls. The eventual aim is to move all atomic lowering from Clang to LLVM. [r266115](http://reviews.llvm.org/rL266115). * Targets can now define an inlining threshold multiplier, to e.g. increase the likelihood of inlining on platforms where calls are very expensive. [r266405](http://reviews.llvm.org/rL266405). * The ownership between DICompileUnit and DISubprogram has been reversed. This may break tests for your out-of-tree backend, but the commit has a link to a Python script to update your testcases. [r266446](http://reviews.llvm.org/rL266446). * llvm-readobj learned to print a histogram of an input ELF file's .gnu.hash . [r265967](http://reviews.llvm.org/rL265967). * More target-specific support for the Swift calling convention (on ARM, AARch64, and X86) has landed. Also, a callee save register is used for the swiftself parameter. [r265997](http://reviews.llvm.org/rL265997), [r266251](http://reviews.llvm.org/rL266251). * A new `allocsize` attribute has been introduced. This indicates the given function is an allocation function. [r266032](http://reviews.llvm.org/rL266032). * analyzeSiblingValues has been replaced with a new lower-complexity implementation in order to reduce compile times. [r266162](http://reviews.llvm.org/rL266162). * The AMDGPU backend gained a skeleton GlobalISel implementation. [r266356](http://reviews.llvm.org/rL266356). * Every use of getGlobalContext other than the C API has been removed. [r266379](http://reviews.llvm.org/rL266379). ## Clang commits * Clang gained support for the GCC ifunc attribute. [r265917](http://reviews.llvm.org/rL265917). * The `__unaligned` type qualifier was implemented for MSVC compatibility. [r266415](http://reviews.llvm.org/rL266415). * Support for C++ core guideline Type.6: always initialize a member variable was completed in clang-tidy. [r266191](http://reviews.llvm.org/rL266191). * A new clang-tidy checker for suspicious sizeof expressions was added. [r266451](http://reviews.llvm.org/rL266451). ## Other project commits * The way relocations are applied in the new ELF linker has been reworked. [r266158](http://reviews.llvm.org/rL266158). * ELF LLD now supports parallel codegen for LTO using splitCodeGen. [r266484](http://reviews.llvm.org/rL266484). * Support for Linux on SystemZ in LLDB landed. [r266308](http://reviews.llvm.org/rL266308).