[llvm-dev] LLVM Weekly - #118, Apr 4th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 4 04:19:39 PDT 2016

LLVM Weekly - #118, Apr 4th 2016

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

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

Almost all slides from the recent EuroLLVM conference are [now available
online](http://llvm.org/devmtg/2016-03/) for your enjoyment.

Some readers my be interested in a new paper about the 'LifeJacket' tool for
[verifying precise floating-point optimisations in

Christian Neumüller has written a [new tool for syntax highlighting and
cross-referencing C and C++ source](https://github.com/oberon00/synth) using

## On the mailing lists

* Chandler Carruth suggests that just like commits that break codegen are
immediately reverted, [commits that introduce large, especially super-linear
compile time regressions should be
There's a lot of agreement in the general principle in replies, though some
point out that much of the slowdown across the past few LLVM and Clang
versions is due to a large number of small changes.

* James Molloy is interested in discussing [how LLVM could learn the size of a
and omit unnecessary checks etc.

* Nick Johnson has a [couple of questions about IfConversion in
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2016-March/097755.html). They
haven't been answered yet, but I know I'd be interested in the answer.

* Russell Wallace has kicked off a very useful thread about [generating calls
to existing functions from the

* Zachary Turner is interested in [people's feelings on requiring a minimum of
MSVC 2015 to compile LLVM and
Clang](http://lists.llvm.org/pipermail/llvm-dev/2016-March/097756.html). The
general feeling so far is that it's too early for this, as typically the
policy is to support the last two major MSVC releases.

* Hans Wennborg has kindly highlighted a [recent API change to
that will be of interest to maintainers of out-of-tree backends.

* Matt Masten has posted an RFC on [vectorizing loops with calls to math
functions using
(Intel's short vector math library).

* Eric Christopher has posted an RFC on [migrating debug type information
generation from the backends to the

* Ke Bai's [memory scope
hasn't really seen any responses up to now. Philip Reames does [share some
but notes it's unlikely this proposal could realistically be merged in to LLVM
unless there is more interest. If this is an area that interests you, then
please do have a good read of Ke's proposal.

## LLVM commits

* The Lanai backend has landed. [r264578](http://reviews.llvm.org/rL264578).

* A new `llvm.experimental.guard` intrinsic has been added. As described in
the accompanying documentation, along with deoptimization operand bundles this
allows frontends to express guards or checks on optimistic assumptions made
during compilation. [r264976](http://reviews.llvm.org/rL264976).

* Support for a number of new Altivec instructions has been added. Amazingly,
this includes BCD (Binary Coded Decimal) instructions.

* The concept of MachineFunctionProperties has been introduced, with the first
property being AllVRegsAllocated. This allows passes to declare that they
require a particular property, in this case requiring that they be run after
regalloc. [r264593](http://reviews.llvm.org/rL264593).

* On X86, push will now be used in preference to mov at all optimisation
levels (before it was only enabled for `-Os`).

* LLVM's support library can now compute SHA1 hashes. This is used to
implement a 'build-id'. [r265094](http://reviews.llvm.org/rL265094),

* When metadata is only referenced in a single function, it will now be
emitted just in that function block. The aim of this is to improve the
potential of lazy-loading. [r265226](http://reviews.llvm.org/rL265226).

## Clang commits

* The Lanai backend is now supported in the Clang driver.

* libTooling gained a handy formatAndApplyAllReplacements function.

## Other project commits

* Parts of LLD are starting to use the new Error handling.
[r264924](http://reviews.llvm.org/rL264924), and more.

* Infrastructure was added to LLD for generating thunks (as required on
platforms like MIPS when calling PIC code from non-PIC).

More information about the llvm-dev mailing list