LLVM Weekly - #612, September 22nd 2025
Welcome to the six hundred and twelfth 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
Submissions for roundtables at the 2025 US LLVM Developers' Meeting are now open. Additionally, you can book a hotel froom from the conference room block and the call for papers is open for the LLVM/Offload workshop.
The next Bay Area monthly meetup will take place on September 29th.
The next Darmstadt LLVM Meetup is happening on 24th September.
Sam Elliott wrote on Qualcomm’s developer blog about improvements in LLVM 21 for Qualcomm’s platforms.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Kristof Beyls, Johannes Doerfert, Amara Emerson.
- Online sync-ups on the following topics: ClangIR, pointer authentication, OpenMP, Flang, RISC-V, LLVM libc, HLSL.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Sharjeel Khan and co-authors posted an RFC on upstreaming compiler support for Lightweight Fault Isolation (LFI), a technique for in-process sandboxing.
Jon Chesterfield initiated a thread revisiting LLVM’s AI contribution policy which generated a lot of discussion. Reid Kleckner pointed to a WIP PR that updates the current policy and has proposed a roundtable discussion at the LLVM Dev Meeting
Pierre van Houtryve is proposing to add a caching system to FullLTO codegen, similar to ThinLTO’s.
In the thread discussing a “structural GEP” proposal, Nikita Popov clarified why this proposal doesn’t amount to effectively adding back getelementptr after migrating away from it to ptradd.
Britton Watson is looking for mentors for Student Travel Grant recipients. “Mentoring a travel-grant student is mostly about hospitality and belonging: helping students navigate the LLVM Developers' Meeting, making warm introductions to interesting people and subprojects, walking them through the hallway track, and encouraging participation at roundtables We want students to leave with new connections to members in the LLVM community and ideas of how they can contribute back or be more involved.”
Tom Stellard proposed enabling the new ‘immutable releases’ feature on GitHub, which would allow the LLVM project to mark a release as immutable with the addition of new assets or modification of existing assets being disallowed.
Kiran Chandramohan is running a poll for a future of the Flang technical call, asking attendees whether to continue or not and whether merge with the “general” call.
Davide Grohmann posted an MLIR RFC on integrating support for the TOSA extended instruction set into MLIR’s SPIR-V dialect.
LLVM commits
RISCVVLOptimizer learned to handle recurrences, leading to the removal of further
vl
toggles. 65ad21d.A new pass was introduced to drop “unnecessary” assumes (those deemed unlikely to be useful for further optimisation). 902ddda.
Membership rules for the LLVM Qualification Group were documented. 2b3f80dc.
llvm-profgen
was extended to generate vtable profiles. 40886fb.LoopStrengthReduce gained the ability to consider all addressing modes when generating potential solutions. 8fab811.
The BPF backend now supports jump tables. c3fb2e1.
The IssueWidth for the Neoverse V1, N1, and N3 scheduling models was reduced as it was found to perform better with this change. a044d61.
LLVM can now emit SFrame frame row entries (FREs). The commit message notes there are some remaining call frame information (CFI) directives to be supported before this is generally usable. 714f032.
A new optimisation was added in SROA (scalar replacement of aggregates) to remove alloca when there are multiple non-overlapping vector stores. 4bc9d29f.
You can now assign an arbitrary latency to an instruction using an annotation in llvm-mca. 4a9fdda.
TableGen’s DecoderEmitter was reworked, resulting in 12% smaller table sizes (with more improvements expected when additional optimisations are added). 60bdf09.
Clang commits
clang-tidy gained support for adding custom checks using clang-query syntax. 584af2f.
-Wincompatible-pointer-types
was made an error by default. b247698.A premerge workflow was added for running clang-tidy on clang-tidy. 2ed7b9f.
Clang now permits implicit conversions from integral to boolean vectors. 134a58a.
ClangIR moved to using TableGen to generate LLVM lowering patterns. 81aaca3.
A new
bugprone-derived-method-shadowing-base-method
check was added to clang-tidy. 85d2a46.
Other project commits
The newly added
ConvertComplexPow
Flang pass will replacecomplex.pow
operations with calls to Fortran runtime or libm functions. 54677d6.A helper script was added to libcxx to produce benchmark results for older commits, and to visualise them. 91b0584, 00333ed.
The SPIR-V MLIR dialect testing strategy was documented. 371048e.
There are now Python bindings for the MLIR IRDL dialect. e5114a2.