LLVM Weekly - #536, April 8th 2024
Welcome to the five hundred and thirty-sixth 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], @llvmweekly or @asbradbury on Twitter, or @[email protected] or @[email protected].
EuroLLVM is taking place this week - hopefully I’ll see many of you there!
News and articles from around the web and events
LLVM 18.1.3 was released.
David Malcolm blogged about improvements to static analysis in the GCC 14 compiler. Do check out the lovely text-based diagrams depicting a potential buffer overflow.
Rubén Pérez performed benchmarks and analysis of using C++20 modules with Boost.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Johannes Doerfert.
- Online sync-ups on the following topics: pointer authentication, SPIR-V, new contributors, OpenMP, Clang C/C++ working group, Flang, BOLT, LLVM libc.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tobias Hieta kicked off a discussion on improving binary security in LLVM, noting that anyone with commit access can currently add artifacts to an LLVM release. This generated lots of discussion that Tobias very helpfully summarised.
Johannes Doerfert announced that the offload/ subfolder has been created and work is underway to move/rename libomptarget.
Kristof Beyls put up an RFC on a new BOLT-based binary analysis tool to verify the correctness of security hardening.
Lawrence Benson proposed adding
__builtin_scatter
and__builtin_gather
to the Clang frontend. 33992ea.Cassie Jones suggested having
clang --version
print more information about the build config, especially whether the config had expension checks or assertions.Alex Zinenko shared the program for the MLIR workshop prior to the EuroLLVM Developer meeting.
Björn Pettersson wondered what is allowed to be done with
FREEZE(UNDEF)
in SelectionDAG and started to get some answers.Vy Nguyen looped back on the RFC thread on LLDB telemetry and metrics to note that the original proposal has been updated.
LLVM commits
The AArch64 backend was tweaked to recognised that folding
lsl
into load/store operations is cheap on almost all cores. c83f23d.atomicrmw floating point operations with vector types are now supported. 4cb110a.
llvm.allow.{runtime,ubsan}.check
intrinsics were introduced. 90c738e.Binary instrumentation for type profiling was implemented. 1351d17.
New InstCombines were added for select combined with and/or/xor. 4ef22fc.
The
--preserve-input-debuginfo-format
flag was added. 379628d.The loop vectoriser started to learn to generate VP intrinsics. 413a66f.
Clang commits
A readability-enum-initial-value clang-tidy check was added. 3365d62.
Array temporary support for HLSL was implemented. 9434c08.
ExtractAPI can now create multiple symbol graphs. b31414b.
Other project commits
libcxx’s “current status” description was updated with information on the OSes that use it as the default implementation and an estimate of the number of user (1B daily active users!). 53d256b.
Flang’s ExternalNameConversion pass was dramatically sped up. 2d14ea6.
LLVM’s libc gained an atan2f implementation. 2be7225.
libclc’s CMake build system was improved, but more changes are still needed to properly support -in-tree builds. 61efea7.
LLD now supports AArch64 AUTH relocations. cca9115.
The offload subfolder and README were added. 33992ea.