LLVM Weekly - #602, July 14th 2025
Welcome to the six hundred and second 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 deadline for talk submissions and for student travel grant applications for the 2025 US LLVM Developers' Meeting is rapidly approaching. July 15th is the final day. Registration will be opening next week.
The next LLVM Bay Area meetup will take place on Monday 21st July.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Phoebe Wang, Johannes Doerfert.
- Online sync-ups on the following topics: ClangIR upstreaming, pointer authentication, vectorisation, security response group, OpenMP, Clang C/C++ language working group, 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
Utkarsh Saxena announced the formation of the Lifetime Safety Breakout Group, forking off from the Memory Safety Working Group.
Renato Golin initiated an MLIR discussion on following through on the plan to deprecate the matmul transpose linalg operations.
There’s been further debate on the proposal to move towards disallowing struct/array IR values, with some commenters concerned that although they’re less helpful for IR for codegen, there are other LLVM IR use cases that may benefit from them.
Jeremy Morse provided an update on debug info improvements via key instructions.
LLVM 20.1.8 was released. This is the last planned 20.1.x release.
Volodymyr Turanskyy proposed adding a Clang command line option for selecting the C library to use.
Michael Jones started an RFC discussion on cleaning up how Linux syscalls are handled within LLVM’s libc implementation.
Mingming Liu made an RFC proposal for extending the SamplePGO profile format to include vtable type information, enabling vtable-based indirect call promotion for SampleFDO.
LLVM commits
A minimal DWARF unwinding information checker was committed. db03408.
Initial slide links and documentation updates were made after the first Qualification Group meeting. 63f19f1.
Definitions (and
-mcpu=
) support were added for the Nvidia GB10 (cluster of CortexX925 and Xortex-A725 cores). 84e5451.As part of refactoring how libcall definitions are managed, you can now define in TableGen a
SystemLibrary
for a complete set of libcalls subdivided by a predicate based on the triple. TableGen can also be used to set the libcall calling conventions. 5088231, 58ad996, b116ee4.A generic expansion of
ISD::FCANONICALIZE
was implemented. acdf1c7.A new command line flag was added to control the estimated cost of a single inline asm IR instruction when inlining. Note that a single “call asm” IR instruction may contain multiple target assembly instructions. cd9236d.
Saturated truncate instructions were added to GlobalISel. 4c27279.
The MachinePipeliner now has logic to validate that the generated schedule doesn’t violate loop-carried memory dependencies. c0b82df.
MC layer definitions were added for Sparc cryptographic instructions. d86c63d.
Clang commits
An initial intra-procedural flow-sensitive lifetime analysis was implemented in Clang, as previously proposed by RFC. 3076794.
Clang’s diagnostics were updated to print fully qualified attribute names including scope. e.g.
gnu::packed
rather thanpacked
. 2e8e254.New clang-tidy checks were added: llvm-prefer-static-over-anonymous-namespace and readability-use-concise-preprocessor-directives. 2f4a804, 59b39c0.
clang-tidy is now “eating its own dogfood” and the
clang-tidy/
directory in the monorepo features a .clang-tidy file enabling a range of checks. d7a1754.
Other project commits
flang gained an
-fcomplex-arithmetic=
option to select the algorithm used for complex division. c990001.Various fuzz tests were added to LLVM’s libc. 81614e5, a9d8843, 425ed22.
libcxxabi and libunwind can now be used with LLVM’s libc. 9d3b60d.
Various MSVC type summaries and formatters were added to LLDB. def7bbb, 45689b2.
Canonical loop operations were added to the OpenMP MLIR dialect. 628c735, 96bc07d.
The convert-xevm-to-llvm pass was introduced to MLIR. 0a34309.