[llvm-dev] LLVM Weekly - #120, Apr 18th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 18 05:56:41 PDT 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).


More information about the llvm-dev mailing list