LLVM Weekly - #594, May 19th 2025
Welcome to the five hundred and ninety-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
After they started appearing last week, all recordings from EuroLLVM 2025 now seem to be available on YouTube.
The next compiler social in Zurich will take place on May 28th.
The call for papers is open for the LLVM-HPC workshop at SC25 (submissions due by August 15th).
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 upsreaming, pointer authentication, security response group, OpenMP, C/C++ language working group, Flang, RISC-V, embedded toolchains.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
LLVM 20.1.5 was released.
Tom Stellard gives some advice on how to deal with spam in issues and PRs on LLVM’s GitHub.
It tentatively appears consensus was found in the discussion on adding warnings when bypassing the premerge testing.
Jon Chesterfield queried if the callinst function type could be required to match the type of the function being called and Nikita Popov gave a good example of why this can’t readily be done.
Arysef has an MLIR RFC on supporting
!llvm.target
as element types of vector and memref.GSoC contributors are getting underway. See the gsoc2025 tag or GSoC category for updates. Welcome to all of those taking part!
LLVM commits
llvm-symbolizer gained support for gsym files. f4b80b9.
The DXILResourceImplicitBinding pass was implemented. 03934d0.
The new GISelValueTracker printing pass can be used to print the known bits and sign bit of each def in a function. ec406e8.
The EVLIndVarSimplify pass was introduced for EVL-vectorized loops. 0ab67ec.
Assembler support was added for the Xandesvpackfph RISC-V extension. Codegen was added for the
lea
instructions from the XandesPerf extension. 9e27db0, a788a1a.Multi-member variants are now allowed in DWARF. 386f2ca.
MC layer support was added for the RISC-V Q extension. 1e503d0, 25e91ed, 99e8d22.
Documentation was written on MLGO corpus tooling. a3c4a5c.
Profile format definitions were added for static data layout, as part of the work to support profile-guided static data partitioning. f3f2832.
DataLayout::getAddressSize(AS)
was introduced, which returns the number of bits that can be used for arithmetic in the given address space. aec685e.
Clang commits
[counted_by]
is now supported on struct pointers.HTMLMustacheGenerator.cpp was added to clang-doc. 3bdfa6f.
bugprone-misleading-setting-of-reference was added to clang-tidy. d84b97e.
Other project commits
The polynomial dialect was removed from MLIR (it has moved to the HEIR project). a3d2b7e.
Initial ARM64EC builtins support was added to compiler-rt. 3764ba2.
Basic constant folding was added to
std::format
in libcxx. 49bced4.Transpose/broadcast semantics were introduced to MLIR’s
linalg.batch_reduce_matmul
. d78ff5f.