LLVM Weekly - #644, May 4th 2026
Welcome to the six hundred and forty-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
Happy IWOLT! In case you didn’t know, the first full week of May is International Week of LLVM Testing. I’m marking this fully legitimate and well-established occasion by trying to write up various things related to LLVM testing I’ve been working on, and push a few other things over the finish line. As an initial foundational piece, here are notes on setting up bootable QEMU images for various targets with rootless cross-architecture debootstrap. But I’ll post more during the week, and of course remind you of it in next Monday’s issue.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Quentin Colombet, Johannes Doerfert.
- Online sync-ups on the following topics: formal specification, MLIR C/C++ frontend, pointer authentication, Clang C and C++ language working group, Flang, SPIR-V, RISC-V, LLVM libc, HLSL, qualification working group, LLVM libc math library.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Google Summer of Code 2026 is now underway. Congratulations to everyone accepted (and as always, thank you to everyone involved in the program - hopefully it’s another very successful year).
Serge Pavlov started an RFC thread on providing optional support for signaling NaNs.
A call for workshop proposals and volunteers for the program committee for the 2026 US LLVM Developers' Meeting has gone out.
As a follow-up to a round table discussion on early exit in MLIR, Matthias Springer and co-authors posted an MLIR RFC to add a builtin token type. “A token is a value-typed handle that exists purely to encode a static def-use relationship between operations / regions. Think of a token as a pointer to another operation / region, reusing MLIR’s existing def-use machinery.”
The next step on the RFC thread on updating the semantics of the noescape attribute is a meeting to discuss further.
Kristof Beyls shared a draft LLVM moderation guide for discussion.
Notes were shared from the C++ static analysis round table at EuroLLVM.
More input is being sought on the RFC to remove unused transitive includes from the libc++ headers.
The LLVM infra team is making a single repo for LLVM working groups to use for documentation and task tracking.
Volodymyr Turanskyy started an RFC discussion on requirements for bare-metal toolchain multilibs layout, following on from discussions at recent LLVM embedded toolchains working group calls.
Elizabeth Andrews proposed removing opencl_global_device and opencl_global_host address space attributes. They were introduced as part of the SYCL upstreaming effort but aren’t used meaningfully in practice.
LLVM Foundation April board minutes were posted.
Luke Lau notes that the effort to remove codegen for trivial VP intrinsics in the RISC-V backend is now complete meaning those intrinsics are now expanded to their equivalent plain LLVM IR.
Jeff Bailey suggested removing 32-bit time_t support from LLVM libc.
LLVM commits
Additional floating point literal formats are now supported in LLVM IR. 8d9299c.
Spillage copy elimination was enabled for AArch64. cf30e4b.
A DXILDebugInfo pass was added for the DirectX backend to transform debuginfo for DXIL emission (LLVM 3.7). fb4ce47.
WebAssembly’s GlobalISel was migrated to use extended low-level types. 16897c2.
LLVM’s YAML implementation gained support for aliases (anchors). 64e7798.
LLVM now provides a default multilib.yaml when
LLVM_RUNTIME_MULTILIBSis set. b49383c.Additional metadata is added when optimisation remarks are enabled to help later passes distinguish the vectorized loop, epilogue loop, and epilogue vectorised loop when making optimisation remarks. f86d707.
llvm-dwp’s performance was improved by adding a direct writer that avoids unnecessary copies. caa18a8.
You can now indicate whether the null pointer is all zeroes or all ones in LLVM’s datalayout. dfa56b5.
JITLink documentation on roadmap and current status was updated. 8e92d3b.
Clang commits
The LLVM flatten attribute is now emitted instead of per-callsite alwaysinline. 8062e82.
O0 codegen was changed to align with
-fno-strict-bool. d28a8b0.
Other project commits
Recursive mutexes were added to LLVM libc. b7d6438.
libcxx’s SPEC benchmark runner was refactored. 471e8f7.
libcxx can now be built using llvm-libc without locale support. 7226f42.
The new MultiBreakpoint packet was added to LLDB’s debugserver. 314c655.
Cases where LLDB commands have custom repeat behaviour were documented. 6e2cb04.
MLIR’s full location inspection API is now exposed in the MLIR Python bindings. c1a2360.
ABITypeMapper and ABIRewriteContext were added to MLIR, as the dialect-agnostic bridge between MLIR dialects and the LLVM ABI lowering library. e3b7ce5.
NativeDylibManager was added to orc-rt, providing a service that supports loading, unloading, and lookup of symbols via the system dynamic loader’s APIs. 0abb456.