LLVM Weekly - #364, December 21st 2020
Welcome to the three hundred and sixty-fourth 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
LLVM is currently celebrating its 20th anniversary. This twitter thread collects a range of shared experiences and celebratory notes.
PoCL (an implementation of the OpenCL standard) v1.6 has been released. This release adds support for LLVM 11 and PowerPC, amongst other changes. OpenASIP v1.22 has also been released, adding initial support for 64-bit processors.
The C++20 standard has been published.
On the mailing lists
-
LLVM 11.0.1-rc2 has been tagged.
-
Serge Guelton asked if there were any objections to finalising the Python 3 transition. The linked patch hasn't yet been committed so it hasn't happened yet.
-
Nicolai Hähnle has shared a proposal for abstracting over SSA form IRs to implement generic analyses. This builds on a previous proposal that generated substantial discussion.
-
Simon Moll shared an RFC on allowing arbitrary intrinsics to have a non-default floating point environment.
LLVM commits
-
A new cost metric was introduced to the inliner that can be enabled with a flag. For a hot call site, it will inline if the ratio of cycle savings to size exceeds a threshold. 9895c70.
-
Additional hardening was added to indirect calls for the straight line speculation vulnerability on Arm. a4c1f51.
-
LoopStrengthReduce's preservation of debug information was improved. 2a6782b.
-
A DOT printer was added for LLVM's data dependence graph. 6eff127.
-
A mir-check-debug pass was introduced to check MIR-level debug info. 39584ae.
-
Additional RISC-V vector support patches were added, for instance for vadd/vsub/vrsub/vwadd/vwaddu/vwsub/vwsubu intrinsics, and many more a6805a0, db48a6d, 19db6a6. 95795e7.
-
The VE backend gained support for atomic exchange instructions. a2eb07a.
-
A new SplitBasicBlockBefore helper was implemented. 2a814cd.
-
The sample profile loader can now consume pseudo-probe-based sample counts. ac068e0.
-
LLVM can now be built with a compiler in C++20 mode. 9231045.
-
Basic definitions were added for the AArch64 v8.7-A architecture. 42b92b3.
-
Intrinsics were added for saturating float to int casts. a89d751.
-
FileCheck now supports directive modifiers. e.g.
CHECK{LITERAL}
will perform a literal match, ignoring regex or variable capture syntax. 44f399c.
Clang commits
-
The baremetal toolchain driver now supports multilibs. 670686a.
-
An assume function attribute was introduced, providing a way to provide arbitrary additional information to the optimiser. b9c7754.