編譯器架構 LLVM 3.0 發布

openkk 13年前發布 | 7K 次閱讀 Linux

LLVM從本質上來說,它不是一個編譯器.它是一個編譯器的架構.通俗的來說,它實現了一個庫,在這個庫上,可以很容易的實現不同的編譯相關的程序,當然,編譯器自然是其中最重要的一個. 當然其他像編譯時間的代碼分析也是很容易實現的。

LLVM定義了一個虛擬機的語言。然后再這個語言的基礎上,實現了很多的功能,例如大多數的優化都是基于這個虛擬機的語言來進行的。(這是和GCC很大的 不同,我想也是delphij提到的更好的優化的原因.) 你可以這么理解,LLVM就是建立了很多個積木塊,寫編譯器就是搭積木。

LLVM-GCC就是一個積木塊,它把C代碼編譯成LLVM的語言。

LLVM-GCC 模塊 => LLVM CODE
-> optimize
-> xxxx 不同的積木塊
x86代碼生成模塊binary <=

這樣,我們寫兩個積木就實現了一個編譯器。如果要不同的平臺,我們換最后那個。不同的語言,我們換第一個。

LLVM 3.0 正式版發布了,新版本最大的跨越就是一個全新的寄存器分配器,可提供大幅度的性能提升;完全支持全新 C++ 內存模型中的原子操作;改進了 MIPS 后端;支持 gprof/gcov 風格的 profile 信息。

更多詳情請看發行說明

項目地址:http://llvm.org/

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!