LLVM Weekly - #610, September 8th 2025
If you prefer, you can read the canonical version of this issue at https://llvmweekly.org/issue/610.
Welcome to the six hundred and tenth 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
The call for proposals is open for the workshop on supporting memory safety in LLVM, taking place just before the US LLVM Developers’ Meeting.
Pedro Lobo wrote on the LLVM blog about their GSoC project to add a byte type to LLVM IR.
Fangrui Song blogged about changes in the LLD 21 release.
The next LLVM meetup in Berlin will take place on 18th September, featuring Morris Hafner presenting his work on upstreaming ClangIR.
The next compilers social in Cambridge UK will take place this Friday 12th September as a full day “MLIR (Un)School Meets UK Compiler Community” event.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Alexey Bader, Alina Sbirlea, Kristof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: MLIR C/C++ frontend working group, ClangIR upstreaming, alias analysis, pointer authentication, OpenMP, Flang, RISC-V, embedded toolchains, HLSL.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
-
Petr Hosek proposed that all unreviewed changes to the
mainbranch in the llvm-project repo should go through a PR. The proposal still allows merging before CI checks finish, meaning quick fixes and reverts can still be made. -
Nathan Gauër started an RFC thread on adding instructions to carry GEP type traversal information. This is moivated by the SPIR-V backend, which struggle due to information loss with plain
ptradd. -
Fabian Mora shared a proposal on cleaning up the MLIR GPU dialect and strengthening its semantics. The proposal suggest moving a number of its operations either to new dialects, an existing dialect (when appropriate), or removing them altogether.
-
Nikita Popov provided an update on work to implement an ABI lowering library for LLVM. Initial results (thanks to vortex73’s GSoC work) are positive and upstreaming should start soon.
-
Farid Zakaria raised the issue that as of recently, GitHub has started timing out downloads if they don’t finish in 5 minutes which poses problems for people downloading GitHub releases on a slower connection.
-
Erik Hogeman started a discussion on extending the current set of fast-math flags. As Nikita notes in response, we’re currently out of free bits in
llvm::Value. -
“buggfg” noted that LLVM vectorization memory analysis seems to fall short in some examples vs GCC and ICX.
-
Rick van Voorden wondered if use of the term ‘sanity checks’ should be moved to an alternative phrase.
-
Quentin Colombet advertised his book, LLVM Code Generation: a deep dive into compiler backend development.
-
LLVM Foundation board meeting minutes from August have now been posted.
-
Arjun Ramesh proposed the addition of a
wasm32-wali-inux-musltarget to Clang. -
Tom Stellard kicked off an RFC thread on adding AArch64 pre-commit CI, with discussion revolving around exactly what sort of configurations should be tested.
LLVM commits
-
A new doc was started on debugging LLVM. 82978df.
-
The HashRecognize analysis is now used by LoopIdiomRecognize to optimize CRC. c5da190.
-
The
LDBGmacro was documented in the programmer manual. 5f41241. -
mmrametadata was documented. e34d2e1. -
A VPlan-level common subexpression elimination pass was implemented. d8fd511.
-
InstCombine learned to merge constant offsets getlementptrs (geps) across variable geps. 349523e.
-
LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORSwas removed. cd7f7cf. -
Codegen and intrinsics for the proposed RISC-V Zvqdotq “vector quad widening 4D dot product” extension was implemented. 7fb1dc0.
-
An
OPC_Scopeopcode was added to the DecoderEmitter, resulting in an average reduction in decoder tables of 1.1% (up to 7% in some cases). 3250349.
Clang commits
-
__builtin_*_synthesises_from_spaceshipwhere added, which makes it possible to do some optimisations by using<=>(spaceship) rather than doing multiple comparisons. b1a8089. -
Support was added for C2y’s “named loops” feature. e4a1b5f.
-
The
alpha.core.CastSizestatic analyzer checker was removed. 9086590. -
As usual there was more forward progress on ClangIR. e.g. adding support for constant record initializer list expressions. 1dbe65a.
-
clang-reorder-fields now supports designated initializers. 4d9578b.
Other project commits
-
Load and store operations were implemented for MLIR’s ptr dialect, and core ptr ops now have a conversion to LLVM IR implemented. 77f2560, d15998f.
-
LLVM’s libc now provides a
strlenimplementation, implemented using a newsimd.hhelper header. eb7b162. -
SPEC can now be run as part of libc++'s own benchmarks. a40930b.
-
lldb-daplearned the--no-lldbinitflag to skip sources.lldbinit. db3054a. -
MLIR’s SPIR-V dialect gained support for the
SPV_ARM_graphextension. cf3a887.