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