[llvm-dev] LLVM Weekly - #113, Feb 29th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 29 06:55:45 PST 2016

LLVM Weekly - #113, Feb 29th 2016

If you prefer, you can read a HTML version of this email at

Welcome to the one hundred and thirteenth 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

LLVM and Clang 3.8RC3 [has been

EuroLLVM 2016 is [less than a month
away](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095832.html). If
you want to attend, be sure to

The Red Hat blog has a [summary of new features in the upcoming GCC 6

The Meeting C++ blog has a [helpful summary of a subset of the proposals for
the next C++ committee

## On the mailing lists

* Chandler Carruth has suggested [moving the LLVM test-suite repository to
In response to some concerns, Chris Lattner points out that using GitHub in
this case [doesn't mean abandoning the current development
it just means it can be augmented with GitHub-style pull requests for those
who prefer it. Chandler [summarised the
and provided a list of next steps.

* Sanjoy Das [pointed out a potential soundness issue with the
`available_externally` linkage
This triggered a very long discussion. James Knight pointed out the same issue
[could happen with normal functions in a shared
There was some back and forth between Hal Finkel and Chandler Carruth [on the
best approach to addressing this

* Philip Reames asks whether [a PHI depending on another PHI in the same basic
block is
It's currently accepted by the verifier but arguably shouldn't be. So far,
nobody has argued that it should be valid.

* Matthias Braun kicked off a discussion on [better defining the semantics of
reserved and unallocatable
After more discussion, he followed up with a [revised

* David Li has posted a [proposal for supporting in-process merging of profile

## LLVM commits

* The Sparc backend now contains definitions for all registers and
instructions defined in the Sparc v8 manual.

* LLVM gained a basic LoopPassManager, though it currently only contains dummy
passes. [r261831](http://reviews.llvm.org/rL261831).

* A number of TargetInstrInfo predicates now take a reference to a
MachineInstr rather than a pointer.

* The WebAssembly backend gained redzone support for the userspace stack.

## Clang commits

* Whole-program vtable optimisation is now available in Clang using the
`-fwhole-program-vtables` flag. [r261767](http://reviews.llvm.org/rL261767).

* Clang gained `__builtin_canonicalize` which returns the platform-specific
canonical encoding of a floating point number.

* A hasAnyName matcher was added. [r261574](http://reviews.llvm.org/rL261574).

* The pointer arithmetic checker has been improved to report fewer false
positives. [r261632](http://reviews.llvm.org/rL261632).

## Other project commits

* The new ELF linker gained support for identical code folding (ICF). This
reduces the size of an LLD binary by 3.6% and of a Clang binary by 2.7%. As
described in the commit message, this is not a "safe" version of ICF as
implemented in GNU gold, so will cause issues if the input relies on two
distinct functions always having distinct addresses.

* Polly's tree now contains an `update_check.py` script that may be useful to
other LLVM devs. It updates a FileCheck-based lit test by updating the
`CHECK:` lines with the actual output of the `RUN:` command.

* LLDB gained a new set of plugins to help debug Java programs, specifically
Java code JIT-ed by the Android runtime.

* The new OpenMP 4.5 affinity API is now supported in LLVM's openmp
implementation. [r261915](http://reviews.llvm.org/rL261915).

* The new ELF linker gained support for the `-r` command-line option, which
produces relocatable output (partial linking).

* The CMake/lit runner for SPEC in the LLVM test-suite can now run the C
CPU2006 floating point benchmarks (but not the Fortran ones).

* The old ELF linker has been deleted from LLD.

More information about the llvm-dev mailing list