LLVM Weekly - #637, March 16th 2026
Welcome to the six hundred and thirty-seventh 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 schedule for the MLIR Workshop at EuroLLVM was announced.
The next Beijing LLVM meetup will take place on March 20th.
The next LLVM Meetup Darmstadt will tke place on 25th March.
The next LLVM Social meetup in Cologne will take place on March 31st.
The next LLVM Bay Area Monthly meetup will take place on 23rd March (rescheduled from the 30th).
The next Portland LLVM social will take place on March 24th.
According to the LLVM Calendar in the coming week there will be the following (note: the US has entered daylight savings but Europe hasn’t yet, so some times may be different than normal):
- Office hours with the following hosts: Phoebe Wang, Johannes Doerfert, Aaron Ballman.
- Online sync-ups on the following topics: Flang, vectorizer improvements, modules, libc++, lifetime safety, LLVM/Offload, Clang C and C++ language working group, OpenMP for flang, HLSL, memory safety working group, reflection.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
LLVM 22.1.1 was released.
Gilles Grimaud posted an RFC on a RISC-V ropi-rwpi profile for split flash/RAM embedded systems. This allows code to be reloctable within executable storage and avoids requiring runtime relocation in .text.
Yonah Goldberg proposed adding an
elementwisemodifier to theatomicrmwinstruction, meaning it is only atomic across each lane.Mehdi Amini would like to remove the implicit bitcast behaviour of vector.extract in MLIR.
The topic of commit access criteria was returned to, considering the case of contributors who have done so largely using AI. A number of respondents suggest changing the criteria to ask for “substantial contributions”.
LLVM commits
The
Bropcode was split intoUncondBrandCondBr. 4fd826d.X86 now uses TableGen to produce its SDNode descriptions. 443ce55.
A SystemZ-specific pre-RA scheduling strategy was introduced. 56a4315.
The UB-aware IR interpreter ‘llubi’ gained support for bitcast. cf1dbb7.
Experimental MC layer support was added for the RISC-V Zvzip extension for reordering structured data in vector registers. db7e0da.
Documentation was added for customising scheduling information for the RISC-V ‘XSfvcp’ vendor extension (SiFive Vector Coprocessor Interface, ‘VCIX’). 607de2b.
Clang commits
The
modernize-use-std-bitchecker will detect idioms that can be replaced by standard functions from the<bit>C++20 header. 9dece6d.The clang-ssaf-linker tool was introduced. 5cafc12, ef375ca.
__attribute__((__personality__(...)))was introduced, used for specifying a custom personality routing for a function. This is motivated by the Swift concurrency runtime where a custom personality ensures exceptions don’t propagate through frames marked with the personality type unchecked. 7472b4a.DirectX TargetInfo now specifies element-aligned vectors. de2bf13.
Other project commits
ASan and UBSan support was added for Hexagon Linux. cef418e.
flang-rt gained a runtime trampoline pool that will allocate trampolines from an mmapped region that can be marked executable. This is gated behind
-fsafe-trampolineand is intended for platforms that enforce write XOR execute. 111baff.LLVM libc docs adopted the Furo theme and have a new landing page. Check it out here. 7030a34.
The LLDB test suite can now be run with MTE (Arm’s Memory Tagging Extension) enabled when the hardware supports it. 643969e, f002fc0.
The ACCComputeLowering pass was added to MLIR, lowering OpenACC compute constructs to a representation that separates the data environment from the compute body, preparing for parallelism assignment. 41c0b19.