1. 程式人生 > >LLVM(二):後端結構

LLVM(二):後端結構

LLVM後端的功能就是處理LLVM IR(中間表示式)並生成目標機器指令。

要實現一個LLVM編譯器的後端需要以下步驟:

1.     描述目標機器的特性

2.     描述目標機器的暫存器

3.     描述目標機器的指令集

4.     描述指令選擇器(也就是如何將IR轉換成Target指令)

5.     描述MC層(Machine code)

可選的步驟有:

1.     描述子機器(比如ARM各種架構中有arm、thumb、thumb2指令集)

2.     新增JIT指令發射器。

和目標機器描述相關的程式碼,都在llvm-3.4/lib/Target/目錄下,在這個目錄下我們可以看到很多體系結構命名的資料夾,例如ARM、X86、Mips等。之後我會以ARM為例,學習LLVM後端是如何實現的。

文筆爛技術菜,如有錯誤請指出,謝謝!