2012-10-22 18 views

回答

0

因爲它們有助於開發鏘/ LLVM,並因爲LLVM/Clang的編譯源代碼產生比GCC更快的二進制...

鏘的開發商聲稱,它提供了降低內存佔用和 增加編譯與競爭編譯器相比速度更快,例如GCC的 。爲支持他們的說法,他們表示,截至2007年10月,Clang編譯的碳文庫的編譯速度比GCC快兩倍,而使用約六分之一的GCC內存和磁盤空間的文件爲 。

http://en.wikipedia.org/wiki/Clang

+0

這將不會有任何用處。爲什麼使用VIRTUAL機器編碼性能關鍵任務(如opengl和cl) –

+0

LLVM不是虛擬機...它是第一個編譯器 – neo571

+0

LLVM代表什麼? –

2

Straight from an LLVM/Apple Developer

More info, PDF Slides

LLVM兩種不同的方式被使用,在運行時:

  1. 運行時代碼專業化固定功能內的頂點處理 管道。基本上,OpenGL管道有很多參數(霧 啓用?頂點具有紋理信息?等),這很少改變:執行完全分支代碼執行分支預測器和 表現不佳。爲了解決這個問題,代碼被預編譯爲LLVM.bc 表單,從中可以對代碼的特化進行優化,並根據運行時需要進行編譯。

  2. OpenGL頂點着色器是使用 具有高度特定領域特徵的編程語言(例如點 產品,紋理查找等)編寫的小程序。在運行時,OpenGL堆棧將頂點程序轉換爲LLVM形式,運行LLVM優化器通過,然後JIT 編譯代碼。

(在上面的鏈路更多細節)

5

蘋果創建鏘如更換,以用於GCC C/C++/ObjC和ObjC++下降。 LLVM的創建者在其編譯器部門的Apple內部工作。在與伊利諾斯大學合作的項目中,蘋果已經爲GCC,GDB [見LLDB],libstdC++ [見libC++]和幾個新項目創建了完整的替代項目。

GPLv3是結束蘋果公司對海灣合作委員會貢獻的最後一根稻草,這也是蘋果在GCC 4.2.x上結束它的原因。

LLVM/Clang正在迅速取代整個行業的GCC。

LLVM現在是一個稱號不當。在LLVM/Clang的支持

當前的目標硬件:

- 靶臂 - 瞄準CppBackend - 瞄準六角 - 瞄準的Mips - 瞄準MBlaze - 瞄準MSP430 - 定位NVPTX - 瞄準的PowerPC - 瞄準的Sparc - 瞄準X86 - 瞄準XCore - 鏘版本:3.3

不久就添加了現成的AMD R600代碼庫。

Clang符合C99。 OpenCL使用C99的子集。 Clang是免費提供的最完整的C11兼容編譯器套件。

FreeBSD已經轉移到LLVM/Clang作爲即將發佈的10.0發行版的默認設置。

AMD和Nvidia使用LLVM/Clang構建OpenCL堆棧。

英特爾正在將他們的OpenCL和更多LLVM/Clang。

谷歌都在LLVM/Clang。同上Adobe,Sony,IBM,Cray等。

GCC是一個混亂的架構。 LLVM/Clang的模塊化使得它的改進速度和開發人員的選擇更大的上限。

LLVM/Clang 3.2的開發人員和用戶指南現在非常穩固,3.3中繼增加了大量文檔以瞭解LLVM/Clang的優勢。

高質量編譯器代碼的開發速度是首屈一指的。

相關問題