LLVM Weekly - #646, May 18th 2026
Welcome to the six hundred and forty-sixth 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 Israel LLVM Meetup in Tel Aviv will take place on June 10th.
The next Portland LLVM social will take place on May 19th.
The next Berlin LLVM meetup will take place on the 21st of May and will feature a talk from Bruno Caballero on targeting hardware accelerators from Java with MLIR.
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: formal specification, pointer authentication, vectorizer, OpenMP, Clang C and C++ language working group, Flang, SPIR-V, RISC-V, embedded toolchains, HLSL, LLVM libc math.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Nikita Popov made a proposal, ‘yet another strict FP’. “I believe that if we want to improve on the current strict FP situation, and treat strict FP as more of a first class citizen, we need to avoid further half measures, and actually support first-class FP environment annotations on all floating-point operations, including basic FP instructions.” This proposal was move the IR from something like
%res = call float @llvm.experimental.constrained.fadd.f32(float %a, float %b, metadata !"round.dynamic", metadata !"fpexcept.strict")to%res = fadd float %a, %b fpenv(rounding_mode: dynamic, strict_except: true, ...).Sharjeel Khan and co-authors posted an RFC for adding the x86-64 lightweight fault isolation (LFI) target. The follows the broader LFI RFC to focus on the x86-64 specific changes, especially at the MC layer.
The Project Council fed back on some RFCs, such as enforcing the rule of three and adding a non-blocking pre-commit clang-tidy bot.
Ivan R. Ivanov started an RFC discussion on adding libacctarget, an OpenACC runtime, to LLVM Offload.
Duncan Ogilvie kicked off a discussion on supporting
LLVM_LINK_LLVM_DYLIBon MSVC. Respondents largely suggest that finishing the work that was started on-fvisibility-default=hiddenis a good path forwards.Alok Kumar Sharma would like to introduce a verifier that runs after IR-transforming passes and checks whether profile metadata remains self-consistent.
Matheus Izvekov proposes removing support for the Templight template instantiation profiler as it seems to be unmaintained and has bitrotted.
ChuanqiXu suggested that C++20 modules serialisation tests be required for new features.
LLVM commits
A new pass was added to the AArch64 backend for code layout optimisation, forcing 64-byte function alignment in certain cases and instruction alignment for some instruction pairs that may cross cache lines. 8996639.
SmallMapVectorwas made more efficient with the addition of a vector-only small mode. 578ba5f.The automatic first time PR greeter was updated to refer to LLVM’s AI policy. e2e2529.
The
LIT_UNSUPPORTEDenvironment variable or--unsupportedcan be used to mark a test as unsupported, similarly to howLIT_XFAILcan be used. d82b563.The AArch64 C1-Nano scheduling model was added. 47e142b.
Use of compressed instructions for RISC-V was improved by using
SPrather thanFPfor frame index access when the offset fits within the compressed immediate range. 46e07d3.Documentation was added for the instrumentor pass. 1bb237a.
A
!sortoperator was added to TableGen. 18e73ee.The
ISD::ABS_MIN_POISONSDag node was introduced to preserve the poison semantics ofllvm.abs. afcd7aa.XRay custom event support was added to Hexagon. 8af0fc6.
RegAllocFastlearned to eliminate additional types of dead copies. 18332f1.
Clang commits
The
misc-static-initialization-cycleclang-tidy check was added, which will find cyclical initialisation of static variables. 9f3d304.An
llvm-formatv-stringclang-tidy check was added to checkllvm:formatvcalls. bc39082.A bug was fixed where Clang over and under-aligned variables for Windows MSVC. 8ecec45.
LifeTimeSafety user documentation was updated. fe5a48c.
Other project commits
AArch32 assembly implementations of double FP mul/div and double and single FP comparisons was added to compiler-rt. 0c539fc, d2af73c, 1cb92d8.
The
LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTSCMake flag was added, which will enable known-incomplete libc entrypoints. 1d93fc4.A “breakpoint override resolver” feature was added to LLDB, meant to aid debugging a scripting language. 457380c.