LLVM Weekly - #612, September 22nd 2025

LLVM Weekly - #612, September 22nd 2025

If you prefer, you can read the canonical version of this issue at https://llvmweekly.org/issue/612.

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

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 replace complex.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.