LLVM編譯器架構
LLVM 是 Low Level Virtual Machine (低級虛擬機)的簡稱,這個庫提供了與編譯器相關的支持,可以作為多種語言編譯器的后臺來使用。能夠進行程序語言的編譯期優(yōu)化、鏈接優(yōu)化、在線編譯優(yōu)化、代碼生成。LLVM的項目是一個模塊化和可重復使用的編譯器和工具技術的集合。LLVM是伊利諾伊大學的一個研究項目,提供一個現(xiàn)代化的,基于SSA的編譯策略能夠同時支持靜態(tài)和動態(tài)的任意編程語言的編譯目標。自那時以來,已經(jīng)成長為LLVM的主干項目,由不同的子項目組成,其中許多正在生產中使用的各種商業(yè)和開源的項目,以及被廣泛用于學術研究。
LLVM 是 Illinois 大學發(fā)起的一個開源項目,和之前為大家所熟知的JVM 以及 .net Runtime這樣的虛擬機不同,這個虛擬系統(tǒng)提供了一套中立的中間代碼和編譯基礎設施,并圍繞這些設施提供了一套全新的編譯策略(使得優(yōu)化能夠在編譯、連接、運行環(huán)境執(zhí)行過程中,以及安裝之后以有效的方式進行)和其他一些非常有意思的功能。
對于普通的開發(fā)人員來說,LLVM計劃提供了越來越多的可以使用、編譯器以外的其他工具。例如代碼靜態(tài)檢查工具 LLVM/Clang Static Analyzer,是一個 Clang 的子項目,能夠使用同樣的 Makefile 生成 HTML 格式的分析報告
評論
圖片
表情
