[llvm-dev] LLVM Weekly - #159, Jan 16th 2017

Alex Bradbury via llvm-dev
Mon, 16 Jan 2017 14:02:08 -0000

LLVM Weekly - #159, Jan 16th 2017
================================
If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/159>.

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

Erik Corry has written up the details of an exciting experiment to [compile
Dart code using LLVM](https://medium.com/dartlang/dart-on-llvm-b82e83f99a70).

John Regehr has written up a great explanation of [how LLVM is
tested](http://blog.regehr.org/archives/1450).

In the context of [recent
news](https://www.tesla.com/blog/welcome-chris-lattner), Alex Rosenberg has
[reiterated Apple's commitment to LLVM, Clang, and open
source](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108953.html).

Alessandro Di Federico has written "yet another" Python binding for
LLVM,
[llvmcpy](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108946.html).

Registration is [now
open](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108889.html) for
EuroLLVM 2017. This will be held March 27-28 in Saarbrücken (Germany). The
deadline to submit a talk, workshop or BoF proposal is January 27th.


## On the mailing lists

* Hal Finkel and Xinmin Tian have created an extensive proposal for adding
[IR-level region
annotations](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108906.html).
It is intended to be used to represent directives for parallelization,
vectorization. The proposal spawned lots of discussion. Vikram Adve is
concerned the [parallel IR extensions may not be sufficiently
language-neutral](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108957.html).

* Mehdi Amini has helpfully [summarised the current status of the LLVM git
transition](http://lists.llvm.org/pipermail/llvm-dev/2017-January/109015.html).

* Quentin Colombet has proposed that [GlobalISel be built by
default](http://lists.llvm.org/pipermail/llvm-dev/2017-January/109029.html).
GlobalISel of course isn't used by default, so the main impact would be a
slightly higher LLVM build time and larger binary size. Renato Golin [raised
some
concerns](http://lists.llvm.org/pipermail/llvm-dev/2017-January/109054.html).

* Paul Robinson started a discussion about [repurposing the 'optnone'
attribute](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108890.html)
so it explicitly matches the behaviour of -O0.

* Hans Wennborg reports that the [4.0.0 release has now
branched](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108949.html).
This means the releases process has started and a first release candidate
should be available shortly.

* Francois Fayard is curious about [what options have been investigated for
LLVM's DenseMap hash
function](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108793.html).
He followed up with [some benchmarks from experimenting with different hash
functions](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108866.html).

* Shiva Chen has proposed a [new LLVM backend for the AndesTech NDS32 V3
ISA](http://lists.llvm.org/pipermail/llvm-dev/2017-January/108964.html).


## LLVM commits

* The processing of `@llvm.assume` intrinsics has been made more efficient.
[r291671](http://reviews.llvm.org/rL291671).

* The llvm-xray tool now supports trace file conversion and function call
accounting (generating basic statistics based on logs).
[r291529](http://reviews.llvm.org/rL291529),
[r291749](http://reviews.llvm.org/rL291749).

* The 'googlemock' component of Google Test has been imported into the
LLVM
source tree. [r291606](http://reviews.llvm.org/rL291606).

* The loop invariant code motion pass learnt to emit optimisation remarks.
[r291646](http://reviews.llvm.org/rL291646),
[r291648](http://reviews.llvm.org/rL291648),
[r291649](http://reviews.llvm.org/rL291649).

* The loop pass manager has seen a major redesign.
[r291651](http://reviews.llvm.org/rL291651),
[r291662](http://reviews.llvm.org/rL291662).

* Functionality for accessing XRay trace logs is now exposed in
`include/llvm/XRay/Trace.h`. [r291651](http://reviews.llvm.org/rL291652).


## Clang commits

* The `diagnose_if` attribute is now supported. This can be used to have clang
emit a particular warning or error for function invocations that meet the
given conditions. [r291418](http://reviews.llvm.org/rL291418).

* Clang will now track the source location of exception specifications.
[r291771](http://reviews.llvm.org/rL291771).

* Support was added for warning about unused C++ lambda captures.
[r291905](http://reviews.llvm.org/rL291905).


## Other project commits

* LLD gained support for the `-Map` option, allowing a link map to be
specified on the command line. [r291958](http://reviews.llvm.org/rL291958).

* libcxx can now be built against the debug MSVC runtimes.
[r292006](http://reviews.llvm.org/rL292006).