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 [email protected]
, or @llvmweekly
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
) and what’s new in Swift
). 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
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
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”). Thecode 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 hasshared 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.
FileCheck learnt the
option as a shorthand for multiple
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.
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.
Other project commits
A complete implementation of the C++ Filesystem TS has been checked in.r273034.
LLD’s ARM port gained initial support for Thumb with ARMv7a.r272881.