[llvm-dev] LLVM Weekly - #129, Jun 20th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 20 04:17:26 PDT 2016


LLVM Weekly - #129, Jun 20th 2016
=================================

If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/129>.

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

Last week was WWDC, which featured talks on [what's new in
LLVM](https://developer.apple.com/videos/play/wwdc2016/405/)
([slides](http://devstreaming.apple.com/videos/wwdc/2016/405i2ilotov3bazyei1/405/405_whats_new_in_llvm.pdf))
and [what's new in
Swift](https://developer.apple.com/videos/play/wwdc2016/402/)
([slides](http://devstreaming.apple.com/videos/wwdc/2016/402h429l9d0hy98c9m6/402/402_whats_new_in_swift.pdf)).
Note that the embedded video player suggests you need Safari or the WWDC app
to stream the video, but you can find a downloadable version under the
"resources" tab.


## On the mailing lists

* Jason Henline has announced the [LLVM parallel-libs
subproject](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101028.html)
which will "host the development of libraries which are
aimed at enabling parallelism in code and which are also closely tied to
compiler technology.Examples of libraries suitable for hosting within the
`parallel-libs` subproject are runtime libraries and parallel math
libraries. The initial candidates for inclusion in this subproject are
StreamExecutor and libomptarget which would live in the `streamexecutor`
and `libomptarget` subdirectories of `parallel-libs`, respectively."

* One of the most active threads this week was about [whether the release
following 3.9 should be
4.0](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101044.html). Much of
the discussion was around whether the move from 3.9 to 4.0 should come with a
large change breaking IR compatibility. Chris Lattner suggests a [sliding
window of IR compatibility may be
better](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101270.html).

* TB Schardl has posted an RFC on [upstreaming the CSI
framework](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101162.html)
("Comprehensive Static Instrumentation"). The
[code](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101196.html) is now
up for review. This framework makes it easy to implement dynamic analysis
tools, often without needing compiler changes.

* Ashutosh Nema has shared an RFC on [strided memory access
vectorisation](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101123.html).

* In response to a question on the mailing list, Hubert Tong has given a
[brain dump on the status of work on concepts support in
Clang](http://lists.llvm.org/pipermail/cfe-dev/2016-June/049480.html)
including opportunities for getting involved.

* Paweł Bylica has [asked for advice on dealing with LLVM as a project
dependency](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101125.html).
In particular, is it worth investigating CMake's ExternalProject module? Chris
Bieneman has [shared some
advice](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101131.html).

* Michael Kuperstein has posted an RFC on [allowing the loop vectorizer to
choose vector widths that generate illegal
types](http://lists.llvm.org/pipermail/llvm-dev/2016-June/101136.html). The
feedback appears to be possible so far.


## LLVM commits

* FileCheck learnt the `--check-prefixes` option as a shorthand for multiple
`--check-prefix` options. [r272670](http://reviews.llvm.org/rL272670).

* A `local_unnamed_addr` attribute was introduced. This can be used by the
code generator and LTO to allow the linker to decide whether the global needs
to be in the symbol table. [r272709](http://reviews.llvm.org/rL272709).

* The ScalarReplAggregates pass has been removed as it has been superseded by
SROA by a long time. [r272737](http://reviews.llvm.org/rL272737).

* LLVM's C API gained support for string attributes.
[r272811](http://reviews.llvm.org/rL272811).

* Assembly parsing and lexing has seem some cleanups.
[r273007](http://reviews.llvm.org/rL273007).


## Clang commits

* A new loop distribution pragma was added. Loop distribution is a
transformation which attempts to break a loop in to multiple loops with each
taking part of the loop body. [r272656](http://reviews.llvm.org/rL272656).

* The nodebug attribute can now be applied to local variables.
[r272859](http://reviews.llvm.org/rL272859).

* The validity check for MIPS CPU/ABI pairings is now performed at
initialisation time and a much clearer message is printed.
[r272645](http://reviews.llvm.org/rL272645).


## Other project commits

* A complete implementation of the C++ Filesystem TS has been checked in.
[r273034](http://reviews.llvm.org/rL273034).

* LLD's ARM port gained initial support for Thumb with ARMv7a.
[r272881](http://reviews.llvm.org/rL272881).


More information about the llvm-dev mailing list