LLVM 21.0.0git 版本發行說明¶
警告
這些是即將發行的 LLVM 21.0.0git 版本的初步說明。先前版本的發行說明可以在下載頁面找到。
簡介¶
本文包含 LLVM 編譯器基礎架構 21.0.0git 版本的發行說明。在此我們描述 LLVM 的狀態,包括先前版本的主要改進、LLVM 各個子專案的改進,以及當前程式碼的一些使用者。所有 LLVM 版本都可以從 LLVM 發行版本網站 下載。
關於 LLVM 的更多資訊,包括關於最新發行版本的資訊,請查看 LLVM 主要網站。如果您有問題或意見,Discourse 論壇 是一個提問的好地方。
請注意,如果您是從 Git checkout 或 LLVM 主要網頁閱讀此檔案,則本文適用於下一個版本,而不是目前版本。要查看特定版本的發行說明,請參閱發行版本頁面。
本次發行版本非詳盡的變更列表¶
…
LLVM IR 的變更¶
nocapture
屬性已被captures(none)
取代。以下指令的常數表達式變體已被移除
mul
LLVM 基礎架構的變更¶
移除了在目標目錄本身中定義目標內建函數的支援(即
TargetIntrinsicInfo
類別)。
LLVM 建置的變更¶
TableGen 的變更¶
跨程序最佳化的變更¶
AArch64 後端的變更¶
AMDGPU 後端的變更¶
ARM 後端的變更¶
AVR 後端的變更¶
DirectX 後端的變更¶
Hexagon 後端的變更¶
LoongArch 後端的變更¶
MIPS 後端的變更¶
PowerPC 後端的變更¶
RISC-V 後端的變更¶
新增對 Qualcomm uC ‘Xqcilia` (Large Immediate Arithmetic) 擴展的實驗性組譯器支援。
新增對 Qualcomm uC ‘Xqcibm` (Bit Manipulation) 擴展的實驗性組譯器支援。
新增對 Qualcomm ‘Xqccmp’ 擴展的實驗性組譯器和程式碼生成支援,該擴展是 Zcmp 的 frame-pointer convention 相容版本。
為
vrgather.vv
指令新增非二次方log-vrgather
成本模型
WebAssembly 後端的變更¶
Windows 目標平台的變更¶
fp128
現在以間接方式傳遞,表示它使用與i128
相同的呼叫慣例。
X86 後端的變更¶
OCaml 綁定的變更¶
Python 綁定的變更¶
C API 的變更¶
以下用於建立常數表達式的函數已被移除,因為不再支援底層的常數表達式。相反地,應該使用
LLVMBuildXYZ
API 建立指令,如果可能,它將會常數折疊運算元,否則將建立指令LLVMConstMul
LLVMConstNUWMul
LLVMConstNSWMul
CodeGen 基礎架構的變更¶
Metadata Info 的變更¶
Debug Info 的變更¶
LLVM 工具的變更¶
llvm-objcopy 現在支援用於中繼 Mach-O 物件檔案的
--update-section
旗標。llvm-strip 現在支援在遇到錯誤時繼續處理檔案。
LLDB 的變更¶
使用 Python 支援建置 LLDB 時,Python 的最低版本現在為 3.8。
LLDB 現在支援 AArch64 Windows 目標平台的硬體監看點。Windows 不提供 API 來查詢支援的硬體監看點數量。因此,目前的實作僅允許 1 個監看點,如同在 Microsoft SQ2 和 Snapdragon Elite X 平台上的 Windows 11 測試結果。
LLDB 現在可以逐步執行 C++ thunk。這修正了先前不會步入多重繼承虛擬函數的問題。
lldb-dap 的變更¶
現在可以為行內的特定欄位設定中斷點。
函數傳回值現在會在 step-out 時顯示。
BOLT 的變更¶
Sanitizers 的變更¶
其他變更¶
使用 LLVM 21.0.0git 的外部開放原始碼專案¶
一個專案…
其他資訊¶
在 LLVM 網頁 上提供了各種其他資訊,特別是在文件章節中。該網頁還包含與 Git 版本的原始碼同步更新的 API 文件版本。您可以透過進入 LLVM 樹狀結構中的 llvm/docs/
目錄來存取特定於此版本的這些文件版本。
如果您對 LLVM 有任何問題或意見,請隨時透過 Discourse 論壇 與我們聯繫。