LLVM 3.1 延遲發布,編譯器架構
LLVM從本質上來說,它不是一個編譯器.它是一個編譯器的架構.通俗的來說,它實現了一個庫,在這個庫上,可以很容易的實現不同的編譯相關的程序,當然,編譯器自然是其中最重要的一個. 當然其他像編譯時間的代碼分析也是很容易實現的。
LLVM定義了一個虛擬機的語言。然后再這個語言的基礎上,實現了很多的功能,例如大多數的優化都是基于這個虛擬機的語言來進行的。(這是和GCC很大的 不同,我想也是delphij提到的更好的優化的原因.) 你可以這么理解,LLVM就是建立了很多個積木塊,寫編譯器就是搭積木。
LLVM-GCC就是一個積木塊,它把C代碼編譯成LLVM的語言。
LLVM-GCC 模塊 => LLVM CODE
-> optimize
-> xxxx 不同的積木塊
x86代碼生成模塊binary <=
這樣,我們寫兩個積木就實現了一個編譯器。如果要不同的平臺,我們換最后那個。不同的語言,我們換第一個。
原計劃在5月14日要發布的 LLVM 3.1 主要更新版本,已經悄悄地延后,目前原因不詳。
LLVM 3.1 是一個主要的更新版本,包含一個新的 AddressSanitizer 工具用于檢測內存錯誤以及一個 ARM 集成匯編工具,另外該版本還提升了機器碼的性能,完整的功能特性可從 preliminary release notes 這里了解到。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!