LLVM Weekly - #638, March 23rd 2026
Welcome to the six hundred and thirty-eighth 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) LLVM pub social will take place tomorrow, Tuesday 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: Kristof Beyls, Johannes Doerfert, Amara Emerson.
- Online sync-ups on the following topics: formal specification, pointer authentication, OpenMP, Flang, SPIR-V, RISC-V, LLVM 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
Matheus Izvekov started a discussion on the need for better frontend benchmarks.
Schrodinger Zhu proposed using a version of the Scudo secure allocator to provide malloc/free in LLVM’s libc.
Sunil Shrestha would like to lower
lastprivate(conditional: ...)to a user-defined reduction form in Flang.In response to a user question on
-Oz, Paul Kirth and Aiden Grossman provided guidance on code size in LLVM and for MLGO.Shivam started an RFC discussion on implementing
DW_OP_implicit_pointersupport in LLVM, enabling debuggers to show the dereferenced value of pointer variables that have been optimised away.Igor Kirillov’s LLVM RFC suggests adding stencil group merging to LoopAccessAnalysis in order to reduce runtime pointer comparisons.
Anatoly Trosinenko proposes removing
@llvm.ptrauth.blendas a standalone intrinsic. A concern raised in the discussion is source compatibility with clang builtns in ptrauth.h
LLVM commits
Initial support was added for the ‘byte type’ in IR. 57568c2.
Repeated<T>was added as a lightweight range representing N copies of the same value. 45fe4bb.A function-level “flatten” function attribute was added to LLVM IR. This recursively inlines all viable callees. f66bd8e.
WebAssembly codegen now supports acquire-release atomics. 18d85a3.
An additional number was added for MachineBasicBlocks used for analyses that is intended to be more stable than their usual number. 9a2f23e.
The SLP vectoriser gained loop nest-aware tree building and cost estimation which should lead to more efficient vectorisation. 6261cb4.
BranchInstis now marked as deprecated. 8e1e371.The
-mtuneoption was added tollc. 69cd746.A benchmark was added for PointerUnion. ea489fe.
Clang commits
The
endian.hheader was added, as specified in POSIX.1-2024. b17db271.User documentation was added on Clangs lifetime safety analysis. 482e137.
ClangIR gained handling for
nounwindattributes. f6f57f0.-verify-directiveswas added as an aid for writing tests. ae9b5a4.The
bugprone-user-after-moveclang-tidy check was extended to recognise user-defined smart-pointer-like types that make guarantees on the state of a moved-from object. 2566961.
Other project commits
The various ways of building LLVM’s libc were documented. df85f45.
free_sizedandfree_aligned_sizedfunctions were added to the Scudo hardened allocator. 1b44e34.iswpunctwas implemented in LLVM’s libc. 6b2e347.LLVM’s libc printf can be compiled with
LIBC_CONF_PRINTF_MODULARso that floating point support is weakly linked into the implementation and so remains only when needed. 7efcd61.Documentation was added for cross-compiling LLDB on FreeBSD. 984417d.
TaskGroupwas introduced to orc-rt for tracking completion of a set of tasks. 0f622c5.