GCC 12.1 已经发布,这些是它的新闻

经过一年的发展 GCC 12.1 构建包发布, 新 GCC 12.x 分支的第一个重要版本。

在新的版本编号方案下,开发期间使用的是 12.0 版本,而在 GCC 12.1 发布前不久,GCC 13.0 分支已经分叉,将形成 GCC 13.1 的下一个主要版本。

GCC 12.1主要新功能

在展示的这个新版本中,突出显示的是e 添加了对 CTF 调试格式的支持, 它提供了有关 C 类型、函数之间的关系和调试符号的信息的紧凑存储。 当嵌入 ELF 对象时,该格式允许使用 EFL 符号表来避免数据重复。

除此之外,值得注意的是 继续扩展对 C 和 C++ 未来 C2X 和 C++23 标准的支持 这也是 与...的兼容性 标准的实验部分 改进了 C++20 和 C++23 在 C++ 标准库中。

对于建筑 x86,增加了针对推测执行导致的处理器漏洞的额外保护 无条件跳转操作后的指令。 问题源于内存中跳转指令之后立即对指令进行抢先处理(SLS,直线推测)。 建议使用“-mharden-sls”选项来启用保护。

还强调了 添加了使用未初始化变量的定义 到实验静态分析仪。 添加了对内联插入解析汇编代码的初始支持。 改进的内存跟踪。 重写代码以处理更改表达式。

添加 对 libgccjit 的 30 个新调用,一个共享库,用于将代码生成器嵌入到其他进程中,并将其用于 JIT 字节码到本机代码的编译。

另一方面,强调的是 支持 CO-RE 机制(Compile Once - Run Everywhere) 到后端生成 BPF 字节码, 允许为内核编译 eBPF 程序的代码 的Linux 只是一次 并使用特殊的通用加载器,使加载的程序适应当前内核和 BTF 类型(BPF 类型格式)。 CO-RE 解决了编译后的 eBPF 程序的可移植性问题,这些程序以前只能在构建它们的内核版本中使用,因为数据结构中元素的位置因版本而异。

已添加到 RISC-V 对新架构扩展的后端支持 指令集 zba、zbb、zbc 和 zbs,以及 ISA 扩展 用于矢量和标量加密操作。 默认提供对 RISC-V ISA 20191213 规范的支持。 添加了 -mtune=thead-c906 标志以启用 T-HEAD c906 内核的优化。

添加 支持类型 __int128_t/integer(kind=16) 到代码生成后端 适用于AMD GPU 基于 GCN 微架构。 每个计算单元 (CU) 最多可以使用 40 个工作组,每个组最多可以使用 16 个指令前沿(波前,一组由 SIMD 引擎并行执行的线程)。 以前,每个 CU 只允许一个指令边沿。

洛杉矶 “-march”、“-mptx”和“-march-map”已添加到 NVPTX 后端,专为使用 NVIDIA PTX(并行线程执行)指令集架构生成代码而设计。 实现了对 PTX ISA sm_53、sm_70、sm_75 和 sm_80 的支持。 默认架构是 sm_30。

除此之外,要强调的是 修复了编译器将执行不合格搜索的问题 在模板定义时而不是在实例化时依赖运算符表达式。 此解决方案与相关调用表达式的现有行为相匹配。

值得一提的是,23 月 35 日,该项目将庆祝第一个 GCC 版本成立 XNUMX 周年。 最后 如果您有兴趣了解更多有关它的信息,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。