LLVM(Low Level Virtual Machine)
生活随笔
收集整理的這篇文章主要介紹了
LLVM(Low Level Virtual Machine)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LLVM(低級虛擬機):編譯器架構
(1)前端: ?源代碼==靜態編譯==>中間碼
(2)后端: ?中間碼==運行時動態編譯(非解釋)==>機器碼
能夠使C/C++跨平臺
LLVM從本質上來說,它不是一個編譯器.它是一個編譯器的架構.通俗的來說,它實現了一個庫,在這個庫上,可以很容易的實現不同的編譯相關的程序,當然,編譯器自然是其中最重要的一個. 當然其他像編譯時間的代碼分析也是很容易實現的。
LLVM定義了一個虛擬機的語言。然后再這個語言的基礎上,實現了很多的功能,例如大多數的優化都是基于這個虛擬機的語言來進行的。(這是和GCC很大的 不同,我想也是delphij提到的更好的優化的原因.) 你可以這么理解,LLVM就是建立了很多個積木塊,寫編譯器就是搭積木。
LLVM-GCC就是一個積木塊,它把C代碼編譯成LLVM的語言。
LLVM-GCC 模塊 => LLVM CODE?
-> optimize?
-> xxxx 不同的積木塊?
x86代碼生成模塊binary <=
這樣,我們寫兩個積木就實現了一個編譯器。如果要不同的平臺,我們換最后那個。不同的語言,我們換第一個。
另外,我認為這是一個趨勢。微軟的phoeni項目和LLVM是非常的類似的。
總結
以上是生活随笔為你收集整理的LLVM(Low Level Virtual Machine)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome Native Client
- 下一篇: Web本地计算发展史