[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

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
then read Geoffroy Couprie's article about [PGO with

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

## 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

* Eric Fiselier has shared an [RFC on packaging the proposed libc++ filesystem

* Teresa Johnson has shared an [RFC on the ThinLTO distributed backend

* Jeroen Dobbelaere is wondering if there's [any interest in an LLVM social in

* 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

## 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.

* 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.

* llvm-readobj learned to print a histogram of an input ELF file's .gnu.hash .

* 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.

* A new `allocsize` attribute has been introduced. This indicates the given
function is an allocation function.

* analyzeSiblingValues has been replaced with a new lower-complexity
implementation in order to reduce compile times.

* The AMDGPU backend gained a skeleton GlobalISel implementation.

* Every use of getGlobalContext other than the C API has been removed.

## Clang commits

* Clang gained support for the GCC ifunc attribute.

* The `__unaligned` type qualifier was implemented for MSVC compatibility.

* 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.

## Other project commits

* The way relocations are applied in the new ELF linker has been reworked.

* ELF LLD now supports parallel codegen for LTO using splitCodeGen.

* Support for Linux on SystemZ in LLDB landed.

More information about the llvm-dev mailing list