LLVM Weekly - #586, March 24th 2025

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

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-after option 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-usage was 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.

Other project commits

  • ASan learned to re-exec without ASLR enabled on 32-bit Linux, if necessary. 3b3f8c5.

  • std::flat_set was implemented in libcxx. 2f1416b.

  • The MLIR sub-channel quantization RFC started to be implemented. 81d7eef.