LLVM Weekly - #605, August 4th 2025
Welcome to the six hundred and fifth 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 agenda has now been posted for the upcoming US LLVM Developers' Meeting.
The next Bay Area LLVM meetup will take place on Monday August 11th.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Johannes Doerfert, Quentin Colombet.
- Online sync-ups on the following topics: Flang, MemorySSA, qualification group, modules, libc++, lifetime safety, LLVM/Offload, C/C++ language working group, SPIR-V, OpenMP for flang, HLSL, memory safety working group.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Renato Golin started a discussion on further fleshing out LLVM’s maintainer policy.
Peter Hallonmark shared some thoughts on supporting MISRA checks in a clang-tidy module.
Owen Anderson, Jessica Clarke, Alex Richardson, David Chisnall posted an RFC on upstreaming target support for CHERI-enabled architectures. As the post explains, more fine-grained RFCs will follow - the intent of this one is to get feedback/consensus on the overall direction of upstreaming. Respondents so far are all very positive.
LLVM 21.1.0-rc2 was released.
Clang/LLVM’s lack of full support for the
restrict
qualifier has been discussed many times over the years. Vladislav Belov breathed new life into the discussion with a new proposal based on encoding lexical scope information in TBAA metadata.The MLIR project lighthouse repository is now online at llvm/lighthouse.
“Sirraide” started a Clang RFC discussion on a new text diagnostics format that supports nested diagnostics.
Prerona Chaudhuri is collecting a list of common errors or missing features in TableGen as part of a “FriendlyTableGen” initiative.
LLVM Foundation Board meeting minutes have now been posted for meetings on February 28th, April 4th, May 9th, and June 5th.
“aman612” asked for and received thoughts on GlobalISel vs SelectionDAG in 2025. Jason Eckhardt shared experiences from bringing up new backends from scratch on GlobalISel and Amara Emerson noted seom of the current limitations/downsides.
Muhammad Bassiouni proposed adding bounds-checking interfaces to LLVM libc (as defined in Annex K of C11).
Aaron Ballman, Shafik Yaghmour, Vlad Serebrennikov, and Corentin Jabot are seeking community feedback on a ‘hardening’ mode for Clang. As outlined in the RFC, although there are lots of choices to be made about how this is done, you could imagine enabling various
-f
,-m
,-D
, and-W
flags by default. “We are looking for high-level direction from the community on how to proceed. Once we know that the community supports the notion of a hardened mode, and we know the general shape of how the community wants that mode surfaced, we intend to come back with a separate proposal for that particular path forward as well as the initial set of functionality enabled by that mode.”
LLVM commits
More float operations are expanded by default. fe0dbe0.
LLVM’s debug logging infrastructure now supports a ‘log level’. e.g. if you
LDBG(2) << "foo"
and run with--debug-only=some_type:1
then thefoo
message will be filtered out. 9c82f87.A new
CreateVectorInterleave
interface as added toIRbuilder
. 6fbc397.GlobalISel
MachineIRBuilder::(build|materialize)ObjectPtrOffset
interfaces were introduced, similar toSelectionDAG::getObjectPtrOffset
. Additionally,MIFlags;:InBounds
was introduced to indicate the operation implements an inbounds getelementptr operation. d64240b, ef6eaa0.The implementation of SFrame support continues, with the addition of parsing and dumping of SFrame function description entries (FDEs). ded255e.
llvm-mc now accepts a
--runs
option to to aid benchmarking. 4f39139.The guide on cross-compiling compiler-rt builtins for Arm was updated. c10736a.
llvm-lit learned to support an
--exclude-xfail
option, which skips running xfailed tests. b383efc.The AsmPrinter can now emit a call graph section. 7c6a1c3.
LoopInvariantCodeMotion stopped reassociating constant offset GEPs. 0a41e7c.
Clang commits
A new
bugprone-invalid-enum-default-initialization
check was added. 6f2cf6b.The use of
%T
was removed from clang-tools-extra tests, noting it has been deprecated for 7 years. Similar patches landed in other LLVM subprojects. 5d489b8.The
run-clang-tidy
script now has anenable-check-profiling
option to aid benchmarking. f72b3ec.There’s been lots of additional ClangIR upstreaming. e.g. support for the poison attribute and further complex type support. e2b4ba0, 03e54a1.
Other project commits
Scudo can now be compiled without quarantine support. ef96275.
A crt0 implementation for Arm baremetal was added to LLVM’s libc. 8c9863e.
libcxx introduced “assertion semantics”, givein control over what happens when an assertion fails. 3eee9fc.
libsycl was started, a runtime library implementation for SYCL. 4cec493.
A WebAssembly process plugin was added to LLDB, which adds support for fetching the call stack from the WebAssembly runtime.
RegisterContextWasm
was also introduced, allowing local variables to be shown. a28e7f1, f623702.MLIR
vector.extractelement
andvextor.insertelement
ops were removed in favor ofvector.extract
andvector.insert
. 33465bb.LLVM’s Offload subproject gained a framework for math conformance tests. This is intended to be used to measure the accuracy of math functions in the GPU libc. 2abd58c.