LLVM Weekly - #624, December 15th 2025

LLVM Weekly - #624, December 15th 2025

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

Welcome to the six hundred and twenty-fourth 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

My Igalia colleague Luke Lau wrote the first part of a blog series on closing the performance gap between Clang/LLVM RISC-V and GCC. This part covers methodology, LNT, and how fixing a failure to select fmsub give a ~1.8% improvement in instruction count.

Miguel Cárdenas wrote on the LLVM project blog about their GSoC project to provide new visualisation tools (see a demo here).

The next Portland area LLVM social will take place on December 18th. Note the new location.

According to the LLVM Calendar in the coming week there will be the following.

  • Office hours with the following hosts: Phoebe Wang Johannes Doerfert.
  • Online sync-ups on the following topics: ClangIR upstreaming, pointer authentication, vectoriser improvements, security response group public sync-up, OpenMP in LLVM, Clang C/C++ language working group, 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

  • Modifying BlockFrequencyInfo to use getPredBlockCostDivisor resulted in a 7% speedup for the 531.deepsjeng_r benchmark on RISC-V. e8219e5.

  • ConstantInt::get() now has an ImplicitTrunc parameter (true by default for now). It will be switch to false in the future to help guard against case where unintended truncation may be taking place. 7b65219.

  • An llvm::reverse_conditionally() iterator was added, which allows conditionally iterating a colleciton in reverse. 9a5fa30, 085dc63.

  • The LoadStoreVectorizer now implements a gap filling optimisation, aiming to fill in hols in otherwise contiguous load/store chains to enable vectorisation. It can also extend the end of a chain to the closest power of two. 5c8c7f3.

  • llvm.experimental.vp.splat was removed. 86c5539.

  • An Apple M5/A19 CPU definition was added. f85494f.

  • In LLVM IR, switch case values are no longer stored as operands and are instead stored more efficiently as a simple array of pointers after the uses. 6813f8f.

  • llvm-lit now has an option to re-run only the tests that failed during the previous run. 04ce013.

Clang commits

  • Clang was updated to use the data layouts from LLVM’s TargetParser as opposed to maintaining its own copies of them. 9dc3255.

  • -fdevirtualize-speculatively can be used to opt-in to the speculative devirtualisation optimisation. 9e7ce77.

  • Basic support for data member pointers was added to ClangIR. 87bf5ee.

  • Support for defer in C was added (needs -fdefer-ts). The implements the draft specification. 71bfdd1.

  • clang-doc HTML generation now uses the Mustache backend. 24117f7.

Other project commits

  • A baremetal version of the compiler-rt profile library was added. bc0d0bb.

  • A policy was added for when LLVM libc ports can be ‘sunsetted’ (removed). 2797688.

  • A WebAssembly ‘platform’ was added to LLDB. The commit message gives an example of using it to launch binaries under the WebAssembly Micro Runtime. 8d59cca.

  • MLIR pass instrumentation can now signal failures such as failed invariant checks. 6b7b0ab.

1 Like

A small clarification regarding this: Those thoughts were my own, from before the project council meeting. The outcome of the project council discussion hasn’t been posted yet.

1 Like

Good point it was potentially misleading to group them together. I’ve split the bulletpoints both here and on llvmweekly.org. Thanks for flagging!