LLVM 17.0 + Clang 17.0 Released With Many New Compiler Features

Written by Michael Larabel in LLVM on 19 September 2023 at 05:52 AM EDT. 14 Comments
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.

LLVM logo

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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week