LLVM/Clang 14 Ends Feature Development With Better C++20 Support, Armv9 Added
LLVM 14.0 will now undergo weeks of bug fixing and testing before being released as stable likely in March. A first release candidate is expected later this week while a second release candidate in early March. If all goes well, LLVM 14.0 stable could be out in mid-March at the earliest.
There is a lot in store for this six month update to the LLVM compiler stack and notable sub-projects like the Clang C/C++ front-end and libc++ standard library. Some of the LLVM 14 highlights include:
- LLVM and Clang have support for the Armv9-A architecture, including Armv9.1-A and Armv9.2-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 coroutines, the C++20 format header, and other C++20 and early C++2b work.
Stay tuned to Phoronix for LLVM/Clang 14 benchmarks against the upcoming GCC 12 compiler release along with other news on this LLVM 14.0 feature release.