LLVM 16 已正式发布。LLVM 16.0 中添加了许多令人兴奋的功能,包括更快的 LLD 链接、Zstd 压缩的调试部分、稳定其 LoongArch 支持、默认为 Clang 的 C++17 等等。
下面是 LLVM 16 的主要变化:
- Clang 的默认 C++ 标准现在是 GNU++17,而不是 GNU++14/C++14
- 实现更多 C++20 功能,以及对现有 C++20 功能的错误修复,并为 C++2b 功能做一些准备
- 实现了更多 C2X 功能
- 各种 Clang 16 编译器诊断改进
- 与 LLVM 15 相比,LLVM 16 的 LLD 链接器对 ELF 对象的链接速度要快得多
- LLVM 16 LLD 现在也支持 Zstd 压缩,类似于 GCC 13 的 Zstd 支持
- LLVM 的 LoongArch CPU 后端已升级为“实验性”,现在默认启用。还有初始的 LoongArch JITLink 支持和启用的其他功能。LLVM 的 LLDB 调试器还支持调试 LoongArch 64 位二进制文件以及 Clang 编译器支持
- LLVM 16.0 支持新的英特尔 x86 ISA 扩展,包括 AMX-FP16、CMPCCXADD、AVX-IFMA、AVX-VNNI-INT8 和 AVX-NE-CONVERT。
- 支持的新 Intel CPU 目标是 Raptor Lake、Meteor Lake、Emerald Rapids、Sierra Forest、Granite Rapids 和 Grand Ridge。
- 提供对带有 -march=znver4 的 AMD Zen 4 处理器的初始支持。
- LLVM 的 RISC-V 后端增加了对许多新扩展的支持,例如 Zca、Zbe、Zbf、Zbm、Zbp、Zbr 和 Zbt。
- LLVM 16 添加了对 Arm Cortex-A715 / Cortex-X3 / Neoverse-V2 内核的支持。
- LLVM 16 的 AArch64 后端现在支持函数多版本控制 (FMV),允许采用自定义代码路径,以根据运行时 CPU/功能优化性能。
- 删除了对 Armv2A / Armv2A / Armv3 / Armv3M 架构的支持。
- LLVM 16 的 libc++ C++ 标准库增加了对更多 C++20 和 C++23 功能的支持。
更多内容可以查看 LLVM 16 的 Release Notes,可从此处下载 LLVM 16.0 源代码和各种二进制文件。
LLVM Discourse 上还有一个简短的发布公告。
还没有评论,来说两句吧...