LLVM Weekly - #592, May 5th 2025
Welcome to the five hundred and ninety-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 next Cambridge (UK) Compiler Social will take place on June 5th.
The next LLVM Meetup in Darmstadt will take place on May 28th.
Arm’s developer blog covers Arm’s contributions to LLVM 20.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Johannes Doerfert, Quentin Colombet, Aaron Ballman.
- Online sync-ups on the following topics: MLIR C/C++ frontend, ClangIR upstreaming, pointer authentication, OpenMP, Clang C/C++ language working group, Flang, 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
Reid Kleckner provided updates on the LLVM_LINK_LLVM_DYLIB default change proposal.
Maxim Kuvyrkov provided a summary of discussion on an LLVM LTS since the RFC was posted.
Michele Scuttari started a discussion on quadratic scaling of bufferization in MLIR.
Aiden Grossman is seeking agreement on running premerge postcommit through GitHub Actions.
Joseph Huber started an RFC discussion in policy for top level directories and language runtimes with the following tl;dr “ for the future where offload/ begins to contain other languageās runtimes. Should we prefer a separate top level directory for each one? Or should they all be put under offload/.”
LLVM 20.1.4 was released.
Anshil Gandhi has a proposal for inserting casts to increase vectorisation of loads and stores.
The next MLIR open meeting will take place on May 6th and cover “side effect semantics, its use for Linalg operations and how it affects CSE as well as other transformations”.
Sameer Sahasrabuddhe has on RFC on defining thread convergence in C++ languages such as HIP, CUDA, OpenCL.
LLVM commits
MC layer support was added for the RISC-V XAndesperf vendor extension. 6ba1a62.
atomicrmw fmaxmimum/fminimum
is now supported. 6e49f73.A scheduling model was added for the MIPS i6400 and i6500 CPUs. c22bc21.
TableGen’s subtarget emitter now prints a warning when a Processor contains duplicate Features. 951292b.
Various RISC-V instruction predicates were converted to using the
TIIPredicate
mechanism. 8f75747.Values of opaque types are no longer allowed in IR. 6feb4a8.
The
update_foo_checks
scripts were updated to continue on error when processing multiple inputs. 88b03aa.
Clang commits
A new
-header-include-filtering=direct-per-file
option was added. 2f1ef1d.-Wimplicit-int-enum-cast
was added which warns about implicit casts from int to an enumeration type in C, which is valid C but not compatible with C++.-Wjump-bypasses-init
was also added. df267d7, 543f112.ClangIR upstreaming continues with initial switch statement support, union types, and more. 9d1f1c4, 708053c.
clang-format’s new OneLineFormatOffRegex option can be used to give a regex used to match a marker that disables clang-format for one line. 8effc8d.
-Wunterminated-string-initialization
warns upon an initialization from a string literal where the null terminator cannot be stored. Taking an example from the commit message:char buf[3] = "foo";
. e8ae779.-ftime-report-json
was added which outputs timing data formatted as JSON. 4a6c81d.