LLVM / Clang 14.0 Prepared For Release With With Armv9, BOLT, More C++20 & C23
LLVM/Clang 14 is another six-month update to this open-source compiler stack and coming about one month prior to GCC 12. Among the major changes with LLVM 14.0 and Clang 14.0 are:
- LLVM and Clang have support for the Armv9-A architecture, including Armv9.1-A and Armv9.2-A and Armv9.3-A. Clang also adds support for the Arm Cortex X2, A710, and A510 processors.
- Another Arm change is Clang now honors the "-mtune" flag on AArch64 to tune code generation to a particular CPU without setting any specific architectural features.
- Support for AVX512-FP16 instructions is added to LLVM for new Intel server CPUs.
- Clang supports a wide range of additional SiFive RISC-V processors from the SiFive E20 through the SiFive S76 with new "-mcpu=" targets.
- Clang has more additions in preparation for C23.
- Clang now supports NVIDIA CUDA versions up to v11.5 and also bumped the default GPU architecture target to sm-35.
- Clang now uses DWARFv5 as the default debug format where supported rather than DWARFv4.
- When building Clang it can now be configured that -fPIE and -pie are used by default on Linux to match the behavior of GCC.
- Clangd now provides inlay hints by default as textual hints interleaved with the code for its Language Server Protocol handling for integration with integrated development environments, etc. There are also numerous other Clangd improvements, including better code completion and more.
- Libc++ now has support for the C++20 co-routines, the C++20 format header, and other C++20 and early C++2b work.
- Facebook's BOLT was merged for optimizing the layout of generated binaries.
- HIPSPV for AMD HIP to SPIR-V landed and continues to be worked on.
- Continued performance optimizations.
Downloads of the LLVM 14.0 assets available so far can be downloaded on GitHub.