網站地圖
下載!
搜尋本站
實用連結
發佈電子郵件
由以下團隊維護
llvm-admin 團隊
|
LLVM 功能特色
用於 C 和 C++ 的 LLVM 編譯器系統 包含以下項目
- C、C++、Objective-C、Fortran 等的前端。它們支援 ANSI 標準的 C 和 C++ 語言。此外,還支援許多 GCC 擴充功能。
- LLVM 指令集的穩定實作,它既作為線上和離線程式碼表示,也與組譯 (ASCII) 和位元組碼 (二進制) 讀取器和寫入器以及驗證器一起使用。
- 強大的 pass 管理系統,可根據 pass 之間的依賴關係自動排序 pass (包括分析、轉換和程式碼產生 pass),並為了提高效率而將它們流水線化。
- 廣泛的全域純量最佳化。
- 連結時間跨程序最佳化框架,具有豐富的分析和轉換集,包括複雜的全程式指標分析、呼叫圖建構,以及對設定檔導向最佳化的支援。
- 易於重新定向的程式碼產生器,目前支援 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 系統的優勢
- LLVM 使用具有嚴格定義語義的簡單低階語言。
- 它包含 C 和 C++ 的前端。Java、Scheme 和其他語言的前端正在開發中。
- 它包含一個積極的最佳化器,包括純量、跨程序、設定檔驅動和一些簡單的迴圈最佳化。
- 它支援終身編譯模型,包括連結時間、安裝時間、執行時間和離線最佳化。
- LLVM 完全支援精確的垃圾收集。
- LLVM 程式碼產生器相對容易重新定向,並且利用了強大的目標描述語言。
- LLVM 具有廣泛的文件,並託管了許多各種專案。
- 許多第三方使用者聲稱 LLVM 易於使用和開發。例如,(現已移除的) Stacker 前端是由一位對 LLVM 一無所知的人在 4 天內編寫完成的。此外,LLVM 具有使開發更輕鬆的工具。
- LLVM 正在積極開發中,並且不斷擴充、增強和改進。請參閱左側欄上的狀態更新,以查看開發速度。
- LLVM 根據 OSI 批准的「Apache License Version 2.0」授權免費提供。
- LLVM 目前被許多商業、非營利或學術實體使用,他們貢獻了許多擴充功能和新功能。
LLVM 受眾
LLVM 可用於許多不同種類的專案。如果您是以下人員,您可能會對 LLVM 感興趣
- 對 C 和 C++ 程式的編譯時間、連結時間 (跨程序) 和執行時間轉換感興趣的編譯器研究人員。
- 對可移植、語言獨立的指令集和編譯框架感興趣的虛擬機器研究人員/開發人員。
- 對編譯器/硬體技術感興趣的架構研究人員。
- 對靜態分析或檢測感興趣的安全性研究人員。
- 對用於快速原型設計編譯器轉換的系統感興趣的講師或開發人員。
- 想要從您的程式碼中獲得更好效能的終端使用者。
想了解更多資訊?
您可以線上瀏覽文件、在您的網路瀏覽器中試用LLVM,或下載原始碼。
|