LLVM and Clang 22 Ship with Distributed ThinLTO, C2y Named Loops, and Armv9.7-A Support in the Toolchains Largest Update of 2026
LLVM 22.1 landed on March 11 with distributed ThinLTO, C2y named loops and defer, Armv9.7-A assembly, and AMD Zen 4 optimizations as the toolchain removes Google NaCl.
Overview
The LLVM project released version 22.1 on March 11, 2026, delivering a broad set of improvements spanning new architecture targets, C and C++ language features, link-time optimization infrastructure, and the removal of legacy platform support. The release adds distributed ThinLTO for more efficient large-scale linking, introduces C2y language features including named loops and the defer technical specification, and brings assembly and disassembly support for Armv9.7-A, according to Phoronix. The Clang frontend gains more than a dozen new diagnostics and builtins, while the backend adds scheduling models for new processors from Intel, AMD, ARM, Ampere, Qualcomm, and NVIDIA, as detailed in Clang’s release notes.
Key Changes
Distributed ThinLTO. The release upstreams Distributed ThinLTO, referred to as DTLTO, which allows ThinLTO’s whole-program optimization to be distributed across build farm machines rather than executing on a single link step. For large codebases where linking can take minutes or hours, DTLTO enables parallelization of the optimization and code generation phases, potentially reducing link times significantly for projects at the scale of Chromium or LLVM itself.
C2y and C Language. Clang 22 implements named loops per the N3355 proposal, allowing programmers to label loop constructs and use break or continue with a target name to control flow in nested loops. The release also enables the defer technical specification via the -fdefer-ts flag, bringing scope-exit cleanup semantics to C, and adds signaling NaN constants (FLT_SNAN, DBL_SNAN, LDBL_SNAN) to the standard float header.
C++ Improvements. For C++2c, Clang began implementing constexpr structured bindings, though tuple-like types are not yet supported. C++20 modules receive a notable change: Reduced BMI mode becomes the default, reducing the size of binary module interface files. Clang now normalizes constraints before checking satisfaction, fixing incorrect diagnostics for concept-based template arguments.
Architecture Targets. The backend adds processor models for Intel Wildcat Lake and Nova Lake with APX and AVX10.2, ARM C1 Nano through C1 Ultra, Ampere1C for the Ampere Aurora line, and NVIDIA Olympus. RISC-V gains stable support for Ssctr and Smctr extensions, and Qualcomm’s Xqci and Xqccmp vendor extensions exit experimental status. AVX10 is simplified by dropping the distinction between 256-bit and 512-bit widths. Long-overdue scheduling optimizations for AMD Zen 4 processors are also included.
New Diagnostics and Builtins. The release adds -Walloc-size to catch insufficient memory allocations, -Wenum-compare-typo for erroneous enum comparisons, and -Wshadow-header to detect header files found in multiple search directories. New builtins include __builtin_dedup_pack for removing duplicate types from parameter packs, __builtin_bswapg for generic byte swapping, and __builtin_stack_address() matching GCC semantics. Trapping UBSan now emits debug information describing trap reasons.
Removals. Google Native Client support has been entirely eliminated from the codebase, ending a long deprecation process for the browser sandboxing technology that Google itself retired in favor of WebAssembly.
Breaking Changes
The -Wincompatible-pointer-types diagnostic now defaults to an error rather than a warning, which may break builds that relied on implicit pointer conversions in C code. Projects can downgrade the behavior with -Wno-error=incompatible-pointer-types while updating their code. Intel’s libsycl SYCL Runtime Library has been upstreamed into the LLVM tree, and AMD’s BFloat16 support for the SPIR-V target is now available.
Looking Ahead
LLVM 22 reflects the toolchain’s continued expansion across processor architectures and language standards. The C2y features signal that LLVM is tracking the next C standard closely, while distributed ThinLTO addresses a long-standing scalability constraint for large builds. With LLVM 23 development already underway on the GitHub repository, the project’s six-month release cadence continues to deliver incremental but cumulatively substantial improvements to the compiler infrastructure that underpins much of the software industry.