GCC 12.1 已发布 大幅提升编译速度


五月是 GCC 1.0 发布的 35 周年,同时 GCC 12.1 也已正式发布,GCC 12.1 是一个重要的功能版本,包含新的 C/C++ 功能到 Fortran 和 Ada 等其他语言的持续工作,支持跨多个架构的最新 CPU 和 ISA 功能,并推进 GCC 的最新功能如内置静态分析器和 JIT 库。 GCC 12.1 的一些亮点包括:
  • 继续为编译器和 C++ 标准库分别支持 C2X 和 C++23 以及 C 和 C++ 的下一版本。C2X 和 C++23 支持仍被视为实验性的。C++20 libstdc++ 支持也得到了改进,但仍处于试验阶段。
  • GCC 12 支持新 Intel CPU 的 AVX-512 FP16 支持。
  • 改进了对 OpenMP 5.0 的支持,添加了各种功能。一些 OpenMP 5.1 功能也已到位。
  • OpenACC 2.6 支持得到改进,包括 AMD GPU 的工作并行性。
  • 在面向前端的 AMD Radeon GCN 上,解决了每个计算单元只能使用一个波前的限制 - 现在每个 CU 最多支持 40 个工作组,每个工作组支持 16 个波前。
  • 与各种 Ada 扩展一起实现的 Ada 2022 语言功能。
  • GCC 的 RISC-V CPU 支持改进,现在支持各种新的指令集扩展。RISC-V 的向量和标量加密扩展与 zba、zbb、zbc 和 zbs 一起添加。
  • 新的 Arm CPU 目标包括 Cortex-A510、Ampere-1、Cortex-A710 和 Cortex-X2。
  • 现在在 -O2 优化级别启用矢量化,使用非常便宜的成本模型来提高常用优化级别的性能。
  • GCC JIT 库 (libgccjit) 已通过各种新入口点和新功能得到进一步改进。
  • 新的 -ftrivial-auto-var-init 允许隐式初始化堆栈变量,以增强安全性。
  • GCC 12 编译器提供 x86 直线推测 (SLS) 缓解支持。Linux 内核已准备好使用这个新的安全选项。
  • GCC 的 Fortran "gfortran" 前端现在完全支持 TS 29113 以实现与 C 编程语言的互操作性。TS 29113 是提高 Fortran 与 C 的互操作性的技术规范。
  • GCC 的静态分析器通过许多新的警告和功能继续得到改进。
可在此查看更多 GCC 12 的更改内容。

相關推薦

2022-04-12

始使用 GCC 12 的 libgcc 标准库,并准备在 GCC 14 以稳定形式发布后将其作为默认编译器。 openSUSE Tumbleweed 采用的是滚动发布的更新方式,软件更新会持续不断地推出,软件套件在某一时刻的版本会被存储为「快照」,而 openSUSE Le

2022-09-03

Phoronix 对运行在 Linux 上的 Apple M2 芯片 的 GCC 和 LLVM Clang 编译器进行了性能测试和对比。 此次测试采用的设备是 Apple M2 MacBook Air ,运行基于 Arch 的 Asahi Linux 系统(这是目前唯一能够运行最新 Apple  M2 芯片的发行版),测试

2022-10-11

本,参与版本贡献的开发者数量新增 63%,是 openEuler 已经发布的发行版中,开发者数量最多的一次。openEuler 22.09 的顺利发布离不开社区近 400 家企业的积极贡献,特别感谢华为、麒麟软件、统信软件、润和软件、中科院软件所、

2023-04-24

Ubuntu 23.04 "Lunar Lobster" 在前两天正式发布了,虽然系统带来了不少新特性、新功能,以及一些问题修复,但不少还停留在 Ubuntu 22.10 甚至更早版本的用户还是会先观望观望,再决定是否升级。日前外媒 Phoronix 在 Ubuntu 23.04 与 22.10

2022-12-11

ISA)以及 GPU 内部的并行计算引擎。 目前,NVIDIA CUDA 12.0 发布了,CUDA 12.0 带来了许多变化,包括最新 Hopper 和 Ada Lovelace GPU 的新功能、更新 C++ 方言、使 JIT LTO 支持官方、新的和改进的 API,以及各种其他功能。 CUDA 12.0 为 NVID

2022-11-23

对于使用 GCC 构建 Linux 内核,仍缺少 LTO 支持,近日发布的一系列补丁是实现此目标的最新尝试。 Clang 的 LTO 支持在 Linux 5.16 中被合并,并一直保留至今。此举除了提升构建性能,对于内核来说,还提供了基于 Clang 的 CFI 支

2022-08-20

GCC 12.2 现已发布,这是 GCC 12 分支的第一个错误修复版本,包含了针对 GCC 12.1 中的回归和严重错误的重要修复,自上一版本以来修复了超过 71 个错误。 GCC 12 带来了许多新特性,包括 AVX-512 FP16 支持、更好的 C2X 和 C++23 支持、O

2022-04-04

目,现在终于能够引导 Rustc 本身了。目前,生成的 rustc 编译器至少可以编译一个简单的 Rust “Hello World!”程序。 是 rustc 的 GCC 代码生成器,它可以由现有的 rustc 前端加载,但可以从 GCC 中受益,因为rustc_codegen_gcc 能够利用 G

2022-04-02

龙芯的 LoongArch 移植已经被合并了,其将在大约一个月后发布稳定版。据称,由于新的 CPU 移植不会对现有的编译器代码造成风险,所以 LoongArch 代码能够在 GCC 指导委员会的批准后顺利进入 GCC。  是龙芯打造的自主指令系统

2023-03-23

于 PostgreSQL 日志文件提供详细报告。 pgBadger v12.1 现已发布,这是一个维护版本,修复了过去六个月以来用户报告的问题: 修复多行绑定参数的解析。 修复对带有 ::tsrange cast 查询的规范化。 在事件报告中添加逻辑解码

2023-04-16

根据 KotlinConf 2023 的消息,Kotlin 2.0 和 Kotlin K2 编译器即将发布。 Kotlin 2.0  从 Kotlin 1.8.20 开始,已经可以通过常规 Kotlin 语言版本标志( -language-version)启用 Kotlin 2.0 的预览。 Kotlin 2.0 发布后,将提供几个备受期待的功

2022-12-09

编译,节省大量的开发和持续集成时间。 Conan 1.55 正式发布,更新内容如下: 特性: 为 AutotoolsToolchain 增加前缀参数 新的 NMakeDeps 生成器 通过 layouts.xxx.buildenv_info 和 layouts.xxx.runenv_info 实现 editable 环境变量 在 settings.yml

2022-08-08

Eclipse OpenJ9 v0.33.0 现已发布,Eclipse OpenJ9 是 OpenJDK 的 JVM,由 IBM 创建并捐赠给 Eclipse 基金会。此 Java 虚拟机经过优化,具备占用空间小、启动速度快以及吞吐量高等优势。 自 0.30.0 版以来,此版本包含以下新功能和显着更改

2023-10-08

N 支持,可用作事务以及分析数据库场景。 Citus 12.1 现已发布,此版本增加了对 Postgres 16 的支持。主要更新内容包括: 从任意节点查询时的负载均衡 分布式 Citus 集群中的 pg_stat_io 支持 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合