[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
<http://llvmweekly.org/issue/113>.

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
tagged](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095756.html).

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
[register](http://www.llvm.org/devmtg/2016-03/#registration).

The Red Hat blog has a [summary of new features in the upcoming GCC 6
release](http://developerblog.redhat.com/2016/02/23/upcoming-features-in-gcc-6/).

The Meeting C++ blog has a [helpful summary of a subset of the proposals for
the next C++ committee
meeting](http://meetingcpp.com/index.php/br/items/current-proposals-for-c17.html).


## On the mailing lists

* Chandler Carruth has suggested [moving the LLVM test-suite repository to
Github](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095809.html).
In response to some concerns, Chris Lattner points out that using GitHub in
this case [doesn't mean abandoning the current development
workflow](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095942.html),
it just means it can be augmented with GitHub-style pull requests for those
who prefer it. Chandler [summarised the
thread](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095943.html)
and provided a list of next steps.

* Sanjoy Das [pointed out a potential soundness issue with the
`available_externally` linkage
type](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095833.html).
This triggered a very long discussion. James Knight pointed out the same issue
[could happen with normal functions in a shared
library](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095935.html).
There was some back and forth between Hal Finkel and Chandler Carruth [on the
best approach to addressing this
problem](http://lists.llvm.org/pipermail/llvm-dev/2016-February/096025.html).

* Philip Reames asks whether [a PHI depending on another PHI in the same basic
block is
valid](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095964.html).
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
registers](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095947.html).
After more discussion, he followed up with a [revised
definition](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095999.html).

* David Li has posted a [proposal for supporting in-process merging of profile
data](http://lists.llvm.org/pipermail/llvm-dev/2016-February/096077.html).


## LLVM commits

* The Sparc backend now contains definitions for all registers and
instructions defined in the Sparc v8 manual.
[r262133](http://reviews.llvm.org/rL262133).

* 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.
[r261605](http://reviews.llvm.org/rL261605).

* The WebAssembly backend gained redzone support for the userspace stack.
[r261662](http://reviews.llvm.org/rL261662).


## 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.
[r262122](http://reviews.llvm.org/rL262122).

* 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.
[r261912](http://reviews.llvm.org/rL261912).

* 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.
[r261899](http://reviews.llvm.org/rL261899).

* LLDB gained a new set of plugins to help debug Java programs, specifically
Java code JIT-ed by the Android runtime.
[r262015](http://reviews.llvm.org/rL262015).

* 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).
[r261838](http://reviews.llvm.org/rL261838).

* 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).
[r261816](http://reviews.llvm.org/rL261816).

* The old ELF linker has been deleted from LLD.
[r262158](http://reviews.llvm.org/rL262158).


More information about the llvm-dev mailing list