LLVM Weekly - #586, March 24th 2025
If you prefer, you can read the canonical version of this issue at https://llvmweekly.org/issue/586.
Welcome to the five hundred and eighty-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 https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback via email: asb@asbradbury.org, or Mastodon: @llvmweekly@fosstodon.org / @asb@fosstodon.org, or Bluesky: @llvmweekly.org / @asbradbury.org.
News and articles from around the web and events
Min-Yih Hsu blogged about calculating throughput with LLVM’s scheduling model.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Kristof Beyls, Amara Emerson, Johannes Doerfert.
- Online sync-ups on the following topics: ClangIR, pointer authentication, OpenMP, Flang, RISC-V backend, LLVM embedded toolchains.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
-
Asher Mancinelli started an MLIR RFC discussion on an attribute interface for loop annotation metadata.
-
The LLVM security response group 2024 transparency report was published.
-
LLVM 20.1.1 was released.
-
Maxwell Bland kicked off a discussion about ideas on heap canaries for Linux.
-
Shilei Tian would like to introduce a sentinel pointer value to DataLayout.
-
Maksim Levental proposed upstreaming CIRCT’s Verif and SMT dialects.
-
Nikita Popov suggested that in the future the llvm.experimental prefix shouldn’t be used for intrinsics and they should just be marked as experimental in documentation.
-
Tom Stellard has created an allow list of third-party GitHub Actions.
-
Mark de Wever started an RFC thread on breaking
basic_format_string’s ABI for performance improvements. -
Matthias Springer would like to allow pointers as element type of MLIR’s VectorType.
-
Asher Mancinelli suggested a volatile representation in Flang.
-
Andrew Rogers shared a PSA on work to annotate LLVM public interfaces as part of efforts to build LLVM as a DLL on Windows.
LLVM commits
-
The DAGCombiner learned to avoid store merging across function calls if the spilling is unprofitable. Taken alongside previously committed tweaks to costing, this can make a big difference on some RISC-V inputs, such as a greater than 10% reduction in runtime for 544.nab_r from SPEC on the BananaPi-F3 in the tested configuration. f138e36.
-
A DXIL instruction legalizer pass was started. a2fbc9a.
-
update_test_checks learned a new
--filter-out-afteroption which stops the generation of any CHECK lines beyond the line that matches the filter. 194ecef. -
MC layer (assembler/disassembler) support was added for the RISC-V vendor extensions Xqcibi (branch immediate), Xqcisim (simulation hints), Xqcilb (long branch), and Xqcisync (sync delay) from Qualcomm. 036c6cb, 467e5a1, 0744d49, 3840f78.
-
LangRef documentation was added for
llvm.readsteadycounter. cc2a86a. -
Assembler support was added for the RISC-V Zilsd and Zclsd extensions ((compressed) load/store pair instructions). Also experimental assembler support for the Zvqdotq (vector quad widening dot product) extension. 480202f, eb77061.
-
The 2024 security group transparency report was committed. 9a078a3.
-
The DirectX root signature binary representation was documented. d0d33d2.
-
GPU loader utilities were moved from libc to LLVM. bd6df0f.
-
Support was added for inline SPIR-V types. 864a83d.
-
LoopIdiomRecognize can now recognise loops implementing strlen/wcslen. ac9049d.
Clang commits
-
Clang Static Analyzer can now collect statistics per entry point rather than just per translation unit. 57e3641.
-
Clang adopted support for GCC’s ASM constexpr string extension. 911b200.
-
ClangIR upstreaming continues to progress, with support added for unary ops, CastOp, scalar conversions, and empty for loops. The cir-translate and cir-lsp-server tools and the cir-canonicalize pass was also upstreamed. 5f86666, 27d8bd3, 1ae307a, 39ce995, f51e5f3.
-
The cplusplus.PureVirtualCall checker was documented. 9762b8e.
-
The compilation time overhead of enabling
-Wunsafe-buffer-usagewas reduced by ~88% leaving compile time overhead of ~1.7% on the benchmarked inputs. f5ee105. -
A bugprone-capturing-this-in-member-variable checker was added. 3b1e18c.