LLVM 9.0的新版本已經發布,這是其新聞

LLVM

經過六個月的發展 介紹了新版本的LLVM 9.0項目的啟動, 這是與GCC兼容的工具包(編譯器,優化器和代碼生成器), 將程序編譯成類似RISC的虛擬指令的中間位代碼 (具有多級優化系統的低級虛擬機)。

它旨在優化編譯時間。、鏈接時間、用戶想要定義的任何編程語言的執行時間。 最初是為了編譯 C 和 C++ 而實現的、LLVM 與語言無關的設計以及該項目的成功 產生了各種各樣的語言,包括Objective-C,Fortran,Ada,Haskell,Java字節碼,Python,Ruby,ActionScript,GLSL,Clang,Rust,Gambas等。

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

LLVM 9.0的主要新功能

LLVM 9.0的新功能 找到支持從RISC-V平台刪除實驗開發標籤的支持,C ++對OpenCL的支持。

另一個新穎之處 突出的是將程序劃分為動態加載部分的能力 LLD和Linux內核代碼中使用的»asm goto»構造的實現。

此外,還要強調的是,Libc ++附帶了對WASI的支持 (WebAssembly系統界面)和LLD引入了對動態WebAssembly綁定的初始支持。 添加了特定於GCC的表達式»asm goto»的實現,該表達式使您可以從組裝的內聯塊切換到C標籤。

要在x86_64系統上使用Clang以»CONFIG_JUMP_LABEL = y«模式構建Linux內核,此功能是必需的。 考慮到以前版本中添加的更改,現在可以在Clang中為x86_64體系結構構建Linux內核(以前,僅ARM,aarch64,ppc32,ppc64le和mips體系結構支持該內核。

增加了對BTI指令的支持 (分支目標指示器)和PAC(指針身份驗證代碼)用於AArch64體系結構。 大大改善了對MIPS,RISC-V和PowerPC平台的支持。

另外, Android和ChromeOS項目已經切換到使用Clang來構建內核 Google正在測試Clang作為其正在運行的Linux系統的主要構建平台內核。

將來, 在內核編譯過程中,可以使用其他組件 LLVM,包括LLD,llvm-objcopy,llvm-ar,llvm-nm和llvm-objdump。

實驗性分區功能已添加到LLD鏈接器,該功能允許將程序分為多個部分,每個部分放置在單獨的ELF文件中。 此功能使您可以運行程序的主要部分,並根據需要加載該過程中的其餘組件(例如,您可以選擇將內置的PDF查看器作為單獨的文件,僅在以下情況下下載該文件)用戶打開文件PDF)。

另一方面,後端的眾多改進也很突出 適用於X86,AArch64,ARM,SystemZ,MIPS,AMDGPU和PowerPC體系結構。

例如,已為AArch2架構添加了對SVE64和MTE(內存標記擴展)指令的支持,對ARM後端添加了對Armv8.1-M架構和MVE架構的支持。

對於AMDGPU,添加了對GFX10架構的支持 (Navi),則啟用默認值以調用功能並傳遞已激活的組合DPP(數據基本體-並行)。

LLDB調試器向後引入了痕蹟的顏色突出顯示; 增加了對DWARF4 debug_types和DWARF5 debug_info塊的支持;

llvm-objcopy和llvm-strip實用程序增加了對COFF格式可執行文件和對象的支持。

RISC-V架構的後端穩定,它不再定位為實驗性,並且默認情況下已構建。 完全支持帶有MAFDC擴展的RV32I和RV64I指令集變體的代碼生成。

來源: http://releases.llvm.org/


發表您的評論

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

*

*

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