GCC 11稳定版下周发布 支持新CPU 引入Intel AMX

在近期发布多个候选版本之后,GCC 11 正式版有望于下周发布。目前,外媒 Phoronix 正在研究 GCC 11(和LLVM Clang 12)编译器基准,以便于在未来几天正式发布之后进行全面的测试。GCC 11.1 稳定版的亮点包括

● 默认的 C++ 模式现在已经升级为 GNU++17(C++17),而非C++14

● GCC 11 现在默认使用 DWARF 第 5 版调试信息格式。

● 即将到来的 C2X 语言修订版的各个部分已经实现,并可以通过"-std=c2x "开关使用。

● GCC 11已经继续了它对C++20的支持,现在有更多的功能正在实现。Libstdc++也有一些C++17/C++20的改进和C++23的实验性工作。

● 新支持的 x86_64 指令有 TSXLDTRK, SERIALIZE, HRESET, UINTR, KEYLOCKER, AMX-TILE/AMX-INT8/AMX-BF16, 和AVX-VNNI。

● GCC 11 在英特尔方面支持的新x86_64 CPU包括Sapphire Rapids、Alder Lake和Rocket Lake。AMD Zen 3 CPU也有初步的支持。

● 对于不匹配的去分配、字符串函数读取超过作为参数传递给它们的数组的末端以及不支持的ThreadSanitizer特性,默认启用新的警告。

● 继续进行OpenMP 5.0和OpenACC 2.6支持工作。

● 硬件辅助的AddressSanitizer支持,目前只在AArch64中发现,还不适合用于构建Linux内核以外的用途。

● GCC本身现在要求主机编译器处理C++11,而以前的要求是C++98。

● AMD对HSAIL的BRIG格式的前端已经被废弃,并可能在GCC 12中被清除掉。

● Libgccjit现在被正式认为是稳定的。

● 现在正式支持的Arm CPU包括Cortex A78、A78AE、A78C、X1和R82。Arm Neoverse V1和Arm Neoverse N2现在也被支持。富士通A64FX现在也被支持。在ARM方面,GCC现在还可以使用ARMv8.3-A、SVE、SVE2和MVE的高级SIMD指令对复杂数字进行自动矢量化操作。

● GCC 11现在允许使用"-mharden-sls "选项来缓解Arm的直线推测漏洞。

● AMD Radeon GCN后端现在支持gfx908后端,又称AMD Instinct MI100。

● RISC-V上的GCC 11现在支持Address Sanitizer、IFUNC以及其他改进。

● 对GCC的静态分析器进行了改进。

您可能还会对下面的文章感兴趣: