LLVM 16 has been officially released. Many exciting features have been added in LLVM 16.0, including faster LLD linking, a compressed debug section of Zstd, stabilizing its LoongArch support, defaulting to C++17 for Clang, and more.
Here are the main changes in LLVM 16:
- Clang’s default C++ standard is now GNU++17 instead of GNU++14/C++14
- Implement more C++20 features, as well as bug fixes for existing C++20 features, and make some preparations for C++2b features
- Implemented more C2X functions
- Various Clang 16 compiler diagnostic improvements
- LLVM 16’s LLD linker links ELF objects much faster than LLVM 15
- LLVM 16 LLD now also supports Zstd compression, similar to GCC 13’s Zstd support
- LLVM’s LoongArch CPU backend has been upgraded to “experimental” and is now enabled by default. There is also initial LoongArch JITLink support and other features enabled. LLVM’s LLDB debugger also supports debugging LoongArch 64-bit binaries as well as Clang compiler support
- LLVM 16.0 supports new Intel x86 ISA extensions, including AMX-FP16, CMPCCXADD, AVX-IFMA, AVX-VNNI-INT8, and AVX-NE-CONVERT.
- Supported new Intel CPU targets are Raptor Lake, Meteor Lake, Emerald Rapids, Sierra Forest, Granite Rapids, and Grand Ridge.
- Provide initial support for AMD Zen 4 processors with -march=znver4.
- LLVM’s RISC-V backend adds support for many new extensions such as Zca, Zbe, Zbf, Zbm, Zbp, Zbr, and Zbt.
- LLVM 16 adds support for Arm Cortex-A715 / Cortex-X3 / Neoverse-V2 cores.
- LLVM 16’s AArch64 backend now supports Function Multiversioning (FMV), allowing custom code paths to optimize performance based on runtime CPU/function.
- Removed support for Armv2A/Armv2A/Armv3/Armv3M architectures.
- LLVM 16’s libc++ C++ standard library adds support for more C++20 and C++23 features.
More can be found in the Release Notes for LLVM 16, where the LLVM 16.0 source code and various binaries can be downloaded.
There is also a short release announcement on LLVM Discourse.
#LLVM #released #default #standard #changed #GNU17 #News Fast Delivery