LLVM Weekly - #129, Jun 20th 2016
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. 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@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.
The canonical home for this issue can be found here at llvmweekly.org.
News and articles from around the web
Last week was WWDC, which featured talks on what's new in LLVM (slides) and what's new in Swift (slides). 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 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 thestreamexecutor
andlibomptarget
subdirectories ofparallel-libs
, respectively."One of the most active threads this week was about whether the release following 3.9 should be 4.0. 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.
TB Schardl has posted an RFC on upstreaming the CSI framework ("Comprehensive Static Instrumentation"). The code 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.
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 including opportunities for getting involved.
Paweł Bylica has asked for advice on dealing with LLVM as a project dependency. In particular, is it worth investigating CMake's ExternalProject module? Chris Bieneman has shared some advice.
Michael Kuperstein has posted an RFC on allowing the loop vectorizer to choose vector widths that generate illegal types. 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.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.The ScalarReplAggregates pass has been removed as it has been superseded by SROA by a long time. r272737.
LLVM's C API gained support for string attributes. r272811.
Assembly parsing and lexing has seem some cleanups. r273007.
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.
The nodebug attribute can now be applied to local variables. r272859.
The validity check for MIPS CPU/ABI pairings is now performed at initialisation time and a much clearer message is printed. r272645.