LLVM 17.0 + Clang 17.0 Released With Many New Compiler Features

The LLVM 17 compiler stack has been released as stable as LLVM 17.0.1 -- a slight mistake leaving the 17.0.0-rc tag meant the original v17.0.0 tag was skipped. This LLVM 17.0.1 stable release along with sub-projects like the Clang 17 C/C++ compiler bring many new features and improvements.

There are many new changes to find with the LLVM 17 compiler stack including some notable additions such as:

- LLVM adds a FatLTO pipeline that allows generating object files with both machine code and LTO-compatible bitcode. The LLVM support for Fat LTO objects allows use for both development builds as well as optimized binaries.

- Assembly support for the AArch64 Arm 2022 A-profile extensions of Guarded Control Stacks, Check Feature Status, and ATS1A.

- The AMDGPU LLVM back-end has more fine-grained synchronization around barriers for GFX9 and newer, Address Space 7 and 8 support added, various new intrinsics are supported, and other new features.

- LLVM on LoongArch adds assembler/disassembler support for the LSX, LASX, LVZ, and LBT LoongArch ISA extensions.

- A ton of RISC-V back-end improvements including for supporting many newer RISC-V ISA extensions and other new features.

- LLVM 17 on x86/x86_64 adds support for newer Intel ISA features like SHA-512, SM3, SM4, and AVX-VNNI-INT16 with Arrow Lake and Lunar Lake .

- LLVM 17 adds the new Granite Rapids D (-mcpu=graniterapids-d) target.

- LLVM's BOLT optimizer adds initial RISC-V target support.


Over on the Clang side for this C/C++ compiler the Clang 17 update provides:

- More C++20 feature support is in place, including co-routines being fully supported now on all targets besides Windows.

- Various C++23 feature support improvements, including now honoring the -std=c++23 option.

- Implementing more C2x feature support.

- Improved -O0 optimization level code generation.

- Adding various GCC stdio built-ins and making other GCC compatibility support improvements with new flags.

- A wide variety of Clang diagnostic improvements.

- Clang on x86/x86_64 now supports AMX-COMPLEX and other new ISA extensions as well as -march=graniterapids-d for Intel Granite Rapids CPU support.

- On the CUDA/HIP side, gnu++17 is now the default standard rather than c++14.

There is also other work to find with LLVM 17 like the LLD linker improvements with many ELF enhancements, libc++ supporting more C++20 and C++23 features, and the Flang front-end continues improving as well too for LLVM Fortran support.

Downloads and more details on today's LLVM 17.0.1 release via LLVM.org .