LLVM Weekly - #646, May 18th 2026

LLVM Weekly - #646, May 18th 2026

If you prefer, you can read the canonical version of this issue at https://llvmweekly.org/issue/646.

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

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.

  • SmallMapVector was 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_UNSUPPORTED environment variable or --unsupported can be used to mark a test as unsupported, similarly to how LIT_XFAIL can be used. d82b563.

  • The AArch64 C1-Nano scheduling model was added. 47e142b.

  • Use of compressed instructions for RISC-V was improved by using SP rather than FP for frame index access when the offset fits within the compressed immediate range. 46e07d3.

  • Documentation was added for the instrumentor pass. 1bb237a.

  • A !sort operator was added to TableGen. 18e73ee.

  • The ISD::ABS_MIN_POISON SDag node was introduced to preserve the poison semantics of llvm.abs. afcd7aa.

  • XRay custom event support was added to Hexagon. 8af0fc6.

  • RegAllocFast learned to eliminate additional types of dead copies. 18332f1.

Clang commits

  • The misc-static-initialization-cycle clang-tidy check was added, which will find cyclical initialisation of static variables. 9f3d304.

  • An llvm-formatv-string clang-tidy check was added to check llvm:formatv calls. 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_ENTRYPOINTS CMake 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.