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. 權利:您可以隨時限制,恢復和刪除您的信息。