LLVM 16.0 已發布,這些是它的新聞

LLVM 徽標

LLVM 是一個用於開發編譯器以及幫助構建新的編程語言和改進現有語言的框架。

經過短短六個月的開發, 發射 項目的新版本 LLVM 16.0,其中實施了大量更改和改進的版本。

對於那些不熟悉 LLVM 的人,你應該知道這個 是 GCC 兼容的編譯器 (編譯器、優化器和代碼生成器)將程序編譯成類似 RISC 的虛擬指令中間位碼(具有多級優化系統的低級虛擬機)。

生成的偽代碼可以在程序執行時由 JIT 編譯器轉換為機器指令。

LLVM 16.0的主要新功能

在這個呈現的新版本中,我們可以發現幾個重要的改進 在 16.0 中, 其中默認的 C++/ObjC++ 標準脫穎而出, 設置為 gnu++17 (以前是 gnu++14),其中 暗示默認支持帶有 GNU 擴展的 C++17 特性. LLVM 代碼中允許使用 C++17 標準中定義的元素。

另一個突出的變化是它已被添加 支持 Cortex-A715、Cortex-X3 和 Neoverse CPU AArch2 後端的 V8.3、Armv64 擴展和多版本功能。
La 平台兼容性 Armv2、Armv2A、Armv3 和 Armv3M 已停產 在 ARM 架構後端中,不能保證正確的代碼生成。 添加了為使用複數的指令生成代碼的功能,並添加了 架構支持 指令集 (ISA) AMX-FP16、CMPCXADD、AVX-IFMA、AVX-VNNI-INT8、AVX-NE-CONVERT 到 X86 後端。

除此之外, 增加了構建 LLVM 的要求, 此外,構建現在應該與 C++17 標準兼容,即構建至少需要 GCC 7.1、Clang 5.0、Apple Clang 10.0 或 Visual Studio 2019 16.7。

另一方面也凸顯 改進了 MIPS、PowerPC 和 RISC-V 架構的後端,以及支持將 LoongArch 架構的 64 位可執行文件調試到 LLDB 調試器,並改進了對 COFF 調試符號的處理。

其他變化 脫穎而出:

  • 在 Libc++ 庫中,主要工作集中在實現對 C++20 和 C++23 標準新特性的支持。
  • 通過並行地址重定位掃描和段初始化操作,LDD 鏈接器中的鏈接時間已顯著減少。 添加了對使用 ZSTD 算法的節壓縮的支持。
  • 還突出顯示了使用 C++20 標準實現的高級功能。
  • 捕獲 lambda 函數中的結構化鏈接。
  • 表達式中的相等運算符。
  • 能夠在某些情況下不指定 typename 關鍵字,
  • 在括號之間添加初始化的允許性(“Aggr(val1,val2)”)。
  • 實現了未來 C++2b 標準中定義的功能。
  • char8_t 類型提供的支持,
  • 擴展了允許在“\N{…}”中使用的字符範圍,
  • 添加了在聲明為 constexpr 的函數中使用聲明為“static constexpr”的變量的功能。
  • 未來 C2x C 標準中定義的已實現功能:
  • 添加了對加載多個配置文件的支持(首先加載默認配置文件,然後是通過“–config=”標誌指定的配置文件,現在可以多次指定)。
  • 更改了默認配置文件的加載順序:clang 嘗試首先加載文件- .cfg 如果找不到它,它會嘗試加載兩個文件.cfg 和.cfg.
  • 添加了一個新的構建標誌“-fcoro-aligned-allocation”用於常規幀對齊分配。
  • 添加了“-fmodule-output”標誌以啟用標準 C++ 模塊的單階段構建模型。
  • 添加模式“-Rpass-analysis=stack-frame-layout”以診斷堆棧幀佈局問題。
  • 添加了一個新的 __attribute__((target_version("cpu_features"))) 屬性並擴展了 __attribute__((target_clones("cpu_features1″,"cpu_features2",…))) 屬性的功能以選擇 CPU AArch64 提供的特定版本的功能.
  • 增強的診斷工具:
  • 添加了警告“-Wsingle-bit-bitfield-constant-conversion”以在將一個分配給一位帶符號的位域時捕獲隱式截斷。
  • 未初始化的 constexpr 變量的擴展診斷。
  • 添加了“-Wcast-function-type-strict”和“-Wincompatible-function-pointer-types-strict”警告以捕獲轉換函數類型的潛在問題。

終於 如果您有興趣了解更多信息, 您可以在中查看詳細信息 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。