3 ms·
LLVM 10.0 RC1 Released
- htfy96 7y agoRelease Notes can be found at "release notes" links on https://prereleases.llvm.org/10.0.0/#rc1 https://prereleases.llvm.org/10.0.0/#rc1. A few highlights: > llvm: -mprefer-vector-width=256 is now the default behavior skylake-avx512 and later Intel CPUs. This tries to limit the use of 512-bit registers which can cause a decrease in CPU frequency on these CPUs. This reminds me of all those "don't use AVX512" memes and a good explanation is at https://stackoverflow.com/questions/56852812/simd-instructions-lowering-cpu-frequency/56861355#56861355 https://stackoverflow.com/questions/56852812/simd-instructio... > llvm: Windows Control Flow Guard: the -cfguard option now emits CFG checks on indirect function calls. The previous behavior is still available with the -cfguard-nochecks option. Note that this feature should always be used with optimizations enabled. A good resource for learning basics of ClangCFI: https://blog.trailofbits.com/2017/02/20/the-challenges-of-deploying-security-mitigations/ https://blog.trailofbits.com/2017/02/20/the-challenges-of-de... > clang/c++: Concepts support. Clang now supports C++2a Concepts under the -std=c++2a flag. This finally landed and was considered one of the biggest features of C++23. Visual Studio implemented it in 16.3 released last year: https://devblogs.microsoft.com/cppblog/c20-concepts-are-here-in-visual-studio-2019-version-16-3/ https://devblogs.microsoft.com/cppblog/c20-concepts-are-here... > clang now defaults to .init_array on Linux. It used to use .ctors if the found gcc installation is older than 4.7.0. Add -fno-use-init-array to get the old behavior (.ctors). That's the pain of relying gcc toolchain in many components to keep backward compatibility. I really wish there could be a "-fbehavior-model=v3" for these kind of subtle changes.