LLVM 編譯器基礎架構
網站地圖
下載!
搜尋此網站


實用連結
發佈郵件
維護者:
llvm-admin 團隊
LLVM 功能

適用於 C 和 C++ 的 LLVM 編譯器系統 包含以下功能

  • 適用於 C、C++、Objective-C、Fortran 等語言的編譯前端。它們支援 ANSI 標準的 C 和 C++ 語言。此外,還支援許多 GCC 的擴充功能。
  • LLVM 指令集的穩定實作,作為線上和離線程式碼表示,以及組譯器(ASCII)和位元組碼(二進位)讀取器和寫入器,以及一個驗證器。
  • 一個強大的傳遞管理系統,根據其相依性自動排序傳遞(包括分析、轉換和程式碼生成傳遞),並將其流水線化以提高效率。
  • 廣泛的全局純量最佳化。
  • 一個連結時程序間優化框架,具有一組豐富的分析和轉換功能,包括複雜的程式全域指標分析、呼叫圖建構和對基於輪廓的優化的支援。
  • 一個易於重定目標的程式碼生成器,目前支援 X86、X86-64、PowerPC、PowerPC-64、ARM、Thumb、SPARC、Alpha、CellSPU、MIPS、MSP430、SystemZ、WebAssembly 和 XCore。
  • 一個即時(JIT)程式碼生成系統,目前支援 X86、X86-64、ARM、AArch64、Mips、SystemZ、PowerPC 和 PowerPC-64。
  • 支援產生 DWARF 除錯資訊。
  • 一個類似於 gprof 的分析系統。
  • 一個測試框架,包含許多基準測試程式碼和應用程式。
  • API 和除錯工具,可簡化 LLVM 元件的快速開發。
LLVM 系統的優勢
  1. LLVM 使用具有嚴格定義語義的簡單 低階語言
  2. 它包含適用於 CC++ 的前端。適用於 Java、Scheme 和其他語言的前端正在開發中。
  3. 它包含一個積極的優化器,包括純量、程序間、配置文件驅動和一些簡單的循環優化。
  4. 它支持 終身編譯模型,包括鏈接時、安裝時、運行時和離線優化。
  5. LLVM 完全支持 精確的垃圾回收
  6. LLVM 代碼生成器相對容易重新定位,並使用強大的目標描述語言。
  7. LLVM 擁有豐富的 文檔,並託管了許多各種類型的 項目
  8. 許多第三方用戶聲稱 LLVM 易於使用和開發。例如,(現已移除的)Stacker 前端是由一位對 LLVM 一無所知的人在 4 天內編寫完成的。此外,LLVM 還具有使 開發更容易 的工具。
  9. LLVM 處於積極開發中,並且不斷得到擴展、增強和改進。請參閱左側欄中的狀態更新,以了解開發速度。
  10. LLVM 根據 OSI 批准的「Apache 許可證 2.0 版」許可證免費提供。
  11. LLVM 目前被許多商業、非營利或學術機構使用,它們貢獻了許多擴展和新功能。
LLVM 受眾

LLVM 可用於許多不同類型的項目。如果您是以下人員,您可能會對 LLVM 感興趣

  • 對 C 和 C++ 程序的編譯時、鏈接時(程序間)和運行時轉換感興趣的編譯器研究人員。
  • 對可移植、獨立於語言的指令集和編譯框架感興趣的虛擬機研究人員/開發人員。
  • 對編譯器/硬件技術感興趣的架構研究人員。
  • 對靜態分析或檢測感興趣的安全研究人員。
  • 對編譯器轉換快速原型系統感興趣的講師或開發人員。
  • 希望從代碼中獲得更好性能的最終用戶。
想了解更多信息?

您可以 在線瀏覽文檔,在 您的網絡瀏覽器中試用 LLVM,或 下載源代碼