LLVM for Grad Students 大学院生のためのLLVM を訳す3

The Pieces

 ここではLLVMアーキテクチャの主要なコンポーネント図を示します(現代の他のコンパイラの構造でもある).

Front End, Passes, Back End

 

フロントエンド: 

ソースコードを取得し、中間表現(IR)に変換する.
この変換は、C++ソースコードの複雑さに完全に対処する必要はなく, 残りの作業が対応します.
おそらくこの部分を改変する必要はありません. あなたはプレーンClangを使用できる。

 

パス:

IRをさらにほかのIRへ変換する.
通常では, パスはコードの最適化を行う. すなわち, 速さはおいといて,入力IRと同じ方法で、出力IRプログラムを生成する。
その部分があなたの改良を行う場所です.
あなたの研究ツールは調べることと, IRのコンパイルプロセスの流れを変更すること を行うことができる.

 

 

バックエンド:

実際のマシンコードを生成します。ほとんどの状況でこの部分に触れることはない.

 

  本章は今日のコンパイラのほとんどの部分について解説したが, LLVMの新規性はもっとある.
プログラムはプロセス全体を通して同じIRを使う. 他のコンパイラでは, 各パスは、独自のIRを生成することがある.
逆アプローチのためのLLVM optsは私たちにとってとても重要な機能である.
フロントエンドとバックエンドの間でコードが動作中,心配するする必要はない.