With half a month delay against the semi-annual twisted relure rhythm, the compiler infrastructure is llvm in version 12.0 appeared. This major version is considered a stable release and includes numerous new features. It supports the x86-64 architecture and should therefore be in the behavior of the compiler gcc and the features supported by him. As usual, the release package also contains the c- / c ++ compiler clang in the latest version.
The intel processors alder lake and sapphire rapids supports the new llvm and should also deal with the instructions hreset, uintr and avxvnni. In addition, the compiler cpus of the type amd zen 3 support, whereby still further fine tuning in the upcoming versions 12.X is to be expected.
Cmake is new construction at llvm
Under the hood, there has been a significant change in creating llvm itself. The internal llvm build python script and the associated llvmbuild.Txt files that have previously described the structure of the llvm components, obese the past. The team behind the compiler recently sets cmake, with each component saving the properties in the targets created by them. As soon as possible components are defined, these properties have been processed to dissipate the library dislocations and produce the headers expected from the llvm configuration (llvm-config).
Standed c ++ support
The new llvm consolidates support for the c ++ programming language according to the release of releases in some essential parts, which had been in the suspension in this compiler so far. This applies among other things to the probability attributes. The library libc ++ has the released message extended its c ++ 20 support and already work on the following higher versions. The source code packages of llvm 12.0 include numerous subprojects such as clang 12, flush 12 and libcxx 12, which are all located in the github-respository of llvm 12 and also download from there.
Lower memory requirement at clang
Clang 12 offers improvements around windows on arm64 as well as the kernel language opencl. The memory needs for clang should have fallen, and the powerpc settings have made the llvm team according to the message changing changes that affect the codes and expand the support of aix. In the area of backend, there are probably innovations in the amdgpu recorded. Last but not least, on the microarchitecture can now be requested on x86 / x86_64-advised now by the option -mtune independent of -march. If -mtune is not defined, obviously nothing and the compiler then picks up the previous -march behavior back.
Further information can be found in the released message. All packages and other information can be found on the github pages of the compiler project, and for interested is also worth looking at the website and download page of the project.