LLVM初步了解
LLVM初步了解
LLVM是構架編譯器(compiler)的框架系統。
用于優化以任意程序語言編寫的程序的編譯時間、鏈接時間、運行時間以及空閑時間。
LLVM已經被 IOS開發工具、Xilinx Vivado、Facebook、Google等采用。
LLVM 核心庫提供了與編譯器相關的支持,可以作為多種語言編譯器的后臺來使用。
能夠進行程序語言的編譯期優化、鏈接優化、在線編譯優化、代碼生成。
LLVM的項目是一個模塊化和可重復使用的編譯器和工具技術的集合。
對于普通的開發人員來說,LLVM計劃提供了越來越多的可以使用、編譯器以外的其他工具。
例如代碼靜態檢查工具LLVM/Clang Static Analyzer,是一個 Clang 的子項目,能夠使用同樣的 Makefile 生成 HTML 格式的分析報告。
對關注編譯技術的開發人員,LLVM提供了很多優點:
? ? 現代化的設計;
? ? LLVM的設計是高度模塊化的,使得其代碼更為清晰和便于排查問題所在;
? ? 語言無關的中間代碼;
? ? 一方面,這使得透過LLVM能夠將不同的語言相互連結起來;也使得LLVM能夠緊密地與IDE交互和集成;
? ? 作為工具和函數庫;使用LLVM提供的工具可以比較容易地實現新的編程語言的優化編譯器或VM,或為現有的編程語言引入一些更好的優化/調試特性。?
如何使用
? ? 在Windows上可以使用Mingw編譯LLVM;
? ? 也可以用VisualStudio 編譯;
? ? Linux;GCC編譯或者是以LLVM/Clang編譯;
? ? Mac OS X;Xcode自帶;
? ? 我還沒完全弄懂, 構架編譯器的框架系統,這詞是什么意思;
? ? 總的來說,這東西可能有兩方面的作用;一個是可以用來寫一個編譯器,不用自己完全從頭做;一個是可以優化現有的程序,應該是集成到IDE里使用;例如可以集成到VS2015里面,然后可以使用LLVM的工具鏈;下回再整;
??
? ? 參閱
https://baike.baidu.com/item/LLVM/3598690?fr=aladdin
總結
- 上一篇: 选择排序和Java实现、C++ vect
- 下一篇: DirectX 视口学习