經過一年的發展 新版本發布了 從免費組 GCC 10.1編譯器,這是GCC 10.x新分支中的第一個重要版本。
根據新的版本編號方案,在開發過程中使用了版本10.0,並且在GCC 10.1發布之前不久,已經分支出了GCC 11.0分支,在此基礎上將形成下一個版本。GCC 11.1的意義。
對於那些不熟悉GCC(GNU編譯器集合)的人,應該知道這是由GNU項目創建的一組編譯器是自由軟件,由自由軟件基金會(FSF)根據GPL通用公共許可證進行分發。
這些編譯器廣泛用於大多數Unix系統上 在某種程度上,它們被視為Unix操作系統,開放源代碼的衍生版本以及專有的(例如Mac OS X)的標準。
GCC需要一組稱為binutils的應用程序來執行任務,例如識別目標文件或獲取其大小以進行複制,翻譯或創建列表,鏈接它們或刪除不必要的符號。
GCC 10.1的新功能
GCC 10.1在實現C ++語言的許多創新方面脫穎而出 為C ++ 20標准開發,與將來的C語言標準(C2x)相關的改進, 編譯器後端和實驗支持方面的新優化 用於靜態分析模式。
對於C,C ++和Fortran語言,實現了OpenACC 2.6並行編程規範,它定義了GPU和專用處理器(例如NVIDIA PTX)上的下載工具。
執行標準 打開 MP 5.0 (Open Multi-Processing),它定義了在具有共享內存和矢量化單元(SIMD)的多核和混合系統(CPU + GPU / DSP)中使用並行編程方法的API和方法, 它快完成了。
功能已添加為條件表達式 lastprivate,scan和loop指令,order和use_device_addr表達式。 對於OpenMP和OpenACC,它已添加 支持在第XNUMX代和第XNUMX代AMD Radeon GPU上下載。
對於C語言,已添加“訪問”功能來描述對通過引用或指針傳遞的對象的功能的訪問,並將這些對象與包含有關對像大小的信息的整數參數關聯。
與``訪問''一起使用時,實現了``類型''屬性以檢測來自用戶功能的不正確訪問,例如,在將值寫入數組邊界之外的區域時。 symver屬性也已添加,以將ELF文件中的字符鏈接到特定版本號。
對於C ++,已經實現了約16項更改和創新 以C ++ 20標准開發 包括關鍵字“ constinit” 添加並實現了對擴展模板的支持«概念»這使您可以定義一組模板參數要求,這些要求在編譯期間限制了可以用作模板參數的參數集。
阿德瑪斯 增強了過程間優化, IPA-SRA經過重新設計,可以在綁定期間工作,並且現在可以刪除未使用的計算值和返回值。
在“ -O2”優化模式下,啟用了“ -finline-functions”選項,該選項被重新配置為比性能更緊湊的代碼。
的 增強型鏈接優化(LTO), s並添加了一個新的可執行文件lto-dump以轉儲信息 在LTO字節編碼的目標文件上。 在LTO並行傳遞中,可以自動確定並發執行任務的數量,如果無法確定,則將有關CPU內核數量的信息用作並行化因子。
優化機制得到改進 並且基於代碼剖析(PGO)的結果,該結果基於對代碼執行特性的分析,可以生成更優化的代碼。
如果您想進一步了解它, 您可以查看此版本的詳細信息 在下面的鏈接中。