LLVM Weekly - #627, January 5th 2026
Welcome to the six hundred and twenty-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.
Twelve years of LLVM Weekly!
If you can believe it, yet another year has passed. Twelve years and still somehow without missing a week. Thank you for reading!
News and articles from around the web and events
GNU Tools Weekly posted short review of GNU toolchain developments in 2025.
The call for proposals for the 2026 EuroLLVM Developers' Meeting closes on 11th January.
According to the LLVM Calendar in the coming week there will be the following:
- Office hours with the following hosts: Johannes Doerfert, Quentin Colombet.
- Online sync-ups on the following topics: Flang, qualification, modules, lifetime safety, LLVM/Offload, Clang C and C++ language working group, OpenMP for Flang, HLSL, reflection.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Alexis Engelke proposes adding a CMake build option to use pre-compiled headers (PCH) in order to speed up the LLVM build. On Alexis' machine, the build time for the tested LLVM config goes from 139 seconds to 86 seconds when built with PCH.
There’s been continuing discussion on the newest LLVM AI tool policy thread, e.g. PragmaTwice sharing practices from ASF communities.
Cristian Assaiante shared results on research to selectively disable optimisation passes with an aim to improve debug information quality at minimal performance loss.
Bill Wendling proposed a solution for improving LLVM support for alternative constraints in GNU extended inline assembly. These are constraints like
"rm"that allow the compiler to choose whether to use a general purpose register or memory for the operand, where currently the frontend defaults to a conservative choice. There’s debae in the thread about whether introducing a new IR instruction is overkill and whether this can be handled in ISel.ChuanqiXu is looking for contributors to help work through collected issues with C++20 modules on Windows.
Owen Anderson proposed new IR attributes to llvm.memcpy/llvm.memmove calls to better support architectures like CHERI.
Yingwei Zheng raised some questions about use of issue assignment, especially (but not exclusively) in terms of how it relates to “good first issues”.
LLVM commits
The first part of the LLVM ABI lowering library was committed - the ABI type system. c2c787c.
The SLP (superword-level parallelism) vectoriser gained initial support for “tree throttling”, where it trims non-profitable subtrees. 79472d3.
A
BranchOnTwoCondsinstruction was added to VPlan in order to improve modeling for early-exit loops. 524b178.LoopMicroOpBufferSizewas set in the AArch64 Oryon scheduling model in order to enable unrolling based on runtime tripcount. 58a5ade.Documentation on on floating point reduction vectorisation was updated to reflect that floating-point reductions can be vectorised using ordered reductions even without
-ffast-mathon some targets. e4414a4.llvm.allow.sanitize.*intrinsics were added. They return true if the corresponding sanitizer is enabled for the function. 75432ce.
Clang commits
-Wunsafe-buffer-usagecan now check custom printf/scanf style functions annotated with__attribute__((__format__(__printf__, ...)))(or__scanf__). 81b4664.A new check,
readability-inconsistent-ifelse-braceswas added to clang-tidy. It will detect cases where one branch of an if/else uses braces and the other one doesn’t. 7c0420d.