LLVM Weekly - #604, July 28th 2025
Welcome to the six hundred and 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
The LLVM hearts ML Workshop has been announced, taking place teh day before the LLVM Dev Meeting.
As a reminder, the call for papers for the LLVM-HPC Workshop at SC'25 closes on August 15.
The Klipspringer blog features a post presenting an LLVM garbage collection statepoints demo.
Fangrui Song gave a detailed write-up of recent changes to section fragment handling in LLVM.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Johannes Doerfert, Renato golin.
- Online sync-ups on the following topics: ClangIR upstreaming, pointer authentication, OpenMP, Flang, LLVM qualification working group, RISC-V, libc, HLSL, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Louis Dionne proposed adding a dependency to libc++ on Boost.Math for C++17 math special functions, which as of now aren’t implemented. Andrew Kelly expressed concern on behalf of the Zig community, but other respondents are more positive and are asking for more details on the Zig concerns.
Baranov Victor would like to provide a better experience for new clang-tidy users, proposing introducing a set of default checks for users to start with.
Now that we have enabled the warning when bypassing premerge testing, Mehdi Amini followed up with an RFC to enable GitHub auto-merge feature to allow merging a patch once the CI completes. There is resounding support for this.
Henri Menke proposes the introduction of flang-tidy, inspired by clang-tidy. A PR including 20 checks is already available for review.
“stefanp-ibm” initiated a discussion on extending the machine scheduler to more accurately model instruction fusion (e.g. understanding that two fused instructions may now completed in a single cycle).
“Aayush910” would like to improve LTO build times with enahnced split DWARF. Currently split DWARF is applied LTO, and the proposal is to temporarily strip out duplicate debug metadata, run LTO on the reduced IR, and then restore it after LTO prior to code generation and split DWARF emission.
Fabian Mora suggested creating a GitHub ‘project’ to better organise MLIR issues.
Panagiotis Karouzakis started a discussion about DemandedBits and division operations.
Dominik Adamski would like to introduce a no-loop mode for OpenMP GPU kernels in Flang.
Following a long discussion on 64-bit source locations in Clang, Haojian Wu posted a compromise proposal for an opt-in CMake option for 64-bit source locations.
LLVM commits
The newly added
LDBG
macro provides a handy shortcut for debug logging. d368d11.An initial SFrame parser and dumper was added as well as GNU compatible syntax parsing and an llvm-mc command line flag. aa7ada1, 29e8599.
llvm-objdump gained support for
--debug-inlined-funs
which will print the location of inlined functions alongside disassembly. e94bc16.Guidance was added on specifying GitHub workflows in a way that doesn’t interact negatively with stacked PRs. 09580f7.
DataWithEVL is now used as the preferred tail folding style for RISC-V. This is in preparation to make EVL tail folding by default. 20c52e4.
The LangRef now documents the case of allocated objects that can grow (e.g. using mmap to reserve a wide range of pages). b1aece9.
Vector instruction latencies for the RISC-V SpacemiT-X60 started to be added. 8952225.
Clang commits
The experimental lifetime safety analysis can now be enabled/disabled for
-f[no]-experimental-lifetime-safety
. 0d04789.Reduced BMI (Binary Module Interface) mode for C++20 modules is now the default option. 255a163.
Code related to trigraph support in clang-format was removed. 12a3afe.
ClangIR support for array constructors was added. 3e9d369.
__builtin_wasm_test_function_pointer_signature
was added. 15b0368.
Other project commits
The lldb-rpc-gen tool was committed. 68c8c8ce.
!$omp unroll
support was implemented in Flang. b487f9a.LLVM’s libc now has generic comparison operations for floating point types implemented in its FPUtil library. e789f8b.
LLD can now read AArch64 build attributes and convert them into GNU properties. d52675e.