LLVM Weekly - #599, June 23rd 2025
Welcome to the five hundred and ninety-ninth 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
Applications for student travel grants to attend the 2025 US LLVM Developers' Meeting are now open.
Herb Sutter posted a trip report from the June 2025 ISO C++ standards meeting. The big news was compile-time reflection being voted in to the C++26 draft.
Alex Gaynor blogged about how work on seralising DER in Rust led to spotting a missed optimisation and landing a patch for it in LLVM.
The next LLVM Bay Area Monthly Meetup is taking place today, June 23rd at 6pm.
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, Aaron Ballman.
- Online sync-ups on the following topics: Flang, modules, SPIR-V, MLIR open meeting (on WebAssembly dialect proposal), OpenMP for Flang, memory safety working group.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tom Stellard and Tobias Hieta are looking for volunteers to help with releases.
Wendi Urribarri kicked off an RFC discussion on establishing a safety group in LLVM in order to discuss the challenges of using LLVM in safety-critical systems development (ISO 26262, DO-178C, EN 50128 etc).
AmirHossein PashaeeHir proposed upstreaming support for DWARF Call Frame Information (CFI) validation.
William Huynh proposed a strategy for implementing stdio.h on baremetal for LLVM’s libc.
Théo Degioanni started an MLIR RFC thread on a principles document for IRDL.
Eugene Lomov proposed generating lld code with TableGen, such as the logic to apply a relocation to an encoded instruction.
Sterling Augustine proposed adding support to the SFrame (“simple frame”) format to LLVM. SFrame is a stack trace format aiming to enable fast, low overhead stack tracing.
Frederik Harwath proposes altering Clang’s GCC installation detector to prefer GCC installs where libstdc++ can be found.
Weibo He would like to add a LifetimeMovePass, which would move lifetime markers inserted by the frontend into more optimal positions.
Sang Ik Lee proposes adding a XeVM dialect to MLIR, with the ensuing discussion clarifying various points.
Renato Golin started a discussion about removing the ‘vcix’ dialect. This triggered lots of debate about the structure of CPU-specific dialects, which Renato later summarised and listed some proposed paths forward.
Robert K Samuel proposed a new MLIR dialect for distributed heterogeneous systems.
Jessica Clarke suggested a policy of forbidding
@username
in commits due to GitHub’s irritating behaviour of sending out new email notifications every time the commit is cherry-picked or pushed to a fork.
LLVM commits
The InstCombine contributor guide was updated with new guidelines and advice. 299a55a.
Further reductions were achieved in the size of the generated Disassembler .so files. 816ab1a.
The Xtensa Interrupt/Exception/Debug options were implemented. c21a4c6.
The RISC-V backend now supports non-power-of-2 types when expanding memcmp. ca29c63.
A scheduling model was added for the Cortex-A320. 6265ca6.
Loop Invariant Code Motion (LICM) learned to hoist ‘writeonly’ calls. 1ab0e7d.
HLSL descriptor table metadata parsing was implemented. b5d5708.
Clang commits
A
cppcoreguidelines-use-num-class
clang-tidy check was implemented. 669627d.clang-doc gained support for documenting C++ concepts. 8050a6e.
The new
readability-use-numeric-limits
clang-tidy check will look for integer literals that correspond to particular numeric limits (e.g.32767
) and replace with the numeric limit (std::numeric_limits<int16_t>::max()
in this example). e7dd223.Support for
-fveclib=libmvec
was added for AArch64 targets. c377ce1.Support was added for the managarm microkernel OS target. e86740e.
Other project commits
Model Context Protocol (MCP) server support was added to LLDB. For now, it just supports one tool -
lldb_command
. 9524bfb.libcxx
std::list
andstd::flat_map
were made constexpr. 13510c0, 831fcb5.BOLT’s gadget scanner can now detect “authentication oracles”. 2b4d757.
mbrtowc
was implemented in LLVM’s libc. d078ce7.views::join_with
was implemented in libcxx. 1bb2328.LLD’s ELF linker gained an optimisation for branch-to-branch (e.g. when code calls a function that immediately tail calls another function). 491b82a.
- MLIR’s LLVM conversion patterns can now optionally take a
SymbolTableCollection
to speed up the lookup of symbols. bb37296.