LLVM Weekly - #172, Apr 17th 2017
Welcome to the one hundred and seventy-second 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 https://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.
News and articles from around the web
John Regehr has written up a blog post to accompany an upcoming PLDI 2017 paper on undefined behaviour in LLVM.
Iota is an intriguing project that converts LLVM bitcode to Common Lisp.
The next Paris LLVM Social will be held on 18th April. Please don't forget to register if you'd like to attend.
Portable Computing Language (pocl) version 0.14 has been released. This adds support for LLVM/Clang 3.9+4.0, a new binary format, and initial support for out-of-order command queue task scheduling.
On the mailing lists
-
Mikhail Zolotukhin has contributed an update on LLVM performance vs January. The good news is that this time LLVM has gotten faster, about 10% compile-time improvement on CTMark vs January. Mikhail has provided a list of potential future optimisations.
-
Sanjoy Das has a useful explanation for some potentially confusing alias analysis results.
-
Piotr Padlewski has written up the current status of devirtualization in LLVM and Clang.
-
Andrei Grischenko reports he is starting to work towards upstreaming a Nios II LLVM backend.
-
Sanjoy Das reports on a potential semantic issue with marking @malloc and @realloc and noalias.
-
Nick Johnson has updated his question from last week to details his partial solution for modelling long register reservations.
-
Krzysztof Parzyszek reports that his initial patchset to support parameterized (variable-sized) register classes are now up for review.
-
Marshall Clow has proposed a plan for removing std::experimental components that have now graduated to the normal std namespace.
LLVM commits
-
The LLVM project SVN repository hit 300k commits. Matt Arsenault had the honour of producing the commit that marked this milestone "AMDGPU: Insert wait at start of callee functions". r300000.
-
Testing scheduling models (specifically latencies and throughput) has been made much easier with the introduction of the
-print-schedule
flag to llc. r300311. -
The address space for alloca can now be specified in a target's datalayout string. r299888.
-
MemorySSA has been moved to Analysis from Transforms/Utils. r299980.
-
The AMDGPU backend gained a new pass to insert wait instructions for memory reads and writes. r300023.
-
LLVM's Casting.h now supports
unique_ptr<>
. r300098. -
Development of llbm-pdbdump has continued, with support added for recursively dumping class layout. r300258.
-
The documentation now describes how to simplify .mir tests. r300282.
Clang commits
-
UBSan will now insert far fewer alignment checks on C++ object pointers than before. r300370.
-
The clang-format documentation now has more examples of the effect of the various configuration options. r299919.
-
To help aid the debugging of issues with codegen for modules, a new
-gen-reproducer
command-line option was added. r300109.