芸術と明確にリンクし、7つのステップの間に旧6、7対応のほとんど。だから我々は、詳細な分析行くしようとしている:説明クラスをターゲット:抽象的な対象のインターフェイスでの説明(コードアドレス:/ LLVM /ターゲット/を含める)を 。
ターゲット記述クラスの特徴以下の主なポイント:
1、ターゲット記述クラス、最初の6つの最もLLVMバックエンドのほとんどは、主な目標は、マシンの抽象的な記述を提供することで、任意の特定のクライアントに依存しません。
図2に示すように、ターゲットの記述クラスはクラスに含まれ、抽象的にはターゲットのパフォーマンス、および特定のコード生成アルゴリズム何を捕捉するように設計されています。
3、(DataLayout除く)対象の記述クラスのすべて、それは親クラスの実装の(これらのクラスのサブクラスを達成し、特定の目標を達成するために)行うように設計された具体的な目標、これらのクラスの実装は、仮想関数が実装されていますA。
4 TargetMachineなど初期エントリクラスは、すべての情報は、インタフェース特定のターゲットを介して取得することができる、記載の完全なマシンターゲット・マシンです。(ターゲット・マシンの完全なマシン記述のプライマリインターフェイスはすべてのターゲット固有の情報は、このインタフェースを介してアクセス可能でなければなりません。)ターゲットマシン上の情報を得るために、このクラスは、*情報を見る仮想関数のシリーズで構成されて、これらの仮想関数ターゲットマシンの具体的な実現に実装を行います。
内のすべてのターゲット記述のクラスで、要約すると、TargetMachineなどとDataLayoutは特別です。TargetMachineなどが初期エントリを達成するために、特定のターゲットマシンを訪問することで、インターフェースは特定の情報にアクセスすることができ、ターゲットマシンが多数含まれています。ターゲット記述クラスとクラスDataLayout含む/ LLVM / IR / DataLayout.hに格納され、非膨張のみです。特定のコード:DataLayout.h
加えて、対象の説明クラスではTargetMachineなどとDataLayout二つの特別なクラスよりも、次のクラスがあります。
TargetLowering (含む/ LLVM / codegenの/ TargetLowering.h)
TargetRegisterInfo (含む/ LLVM /コード生成/ TargetRegisterInfo.h)
TargetInstrInfo (含む/ LLVM /コード生成/ TargetInstrInfo.h)
TargetFrameLowering (含む/ LLVM /コード生成/ TargetFrameLowering.h)
TargetSubtarget(TargetSubtargetには現在、クラス、唯一持っていないTargetSubtargetInfoのカテゴリを、アドレス:含ま/ LLVM /コード生成/ TargetSubtargetInfo.h )
TargetJITInfo(今なしTargetJITInfoカテゴリ)
-------------------------------------------------- -------------------------------------
注意!注意!注意!
ドキュメントには、最新のコードの変更に追いついていません。そこで、我々は言及したターゲットの説明クラスコードアドレスのを:/ LLVM /ターゲット/が含まれ、完全に適用されています。我々はTargetMachineなどのクラスに加えて、まだここにいる、他のクラスはすでにを変更しました。ほとんどのカテゴリの下に含める/ LLVM /コード生成/ディレクトリに移動し、提出されたノード:rL318490 。
関連コンテンツ:
小さな天使父親:三〇から七LLVMバックエンドのプロフィールのLLVM毎日話(杭州シェアPPT)
小さな天使父親:四〇から七LLVMバックエンド文書の解析のLLVM毎日話
小さな天使父親:1を解析し、毎日四〇から八LLVMバックエンド文書についてLLVMの話
小さな天使父親:2を解析する毎日四〇から九LLVMバックエンド文書についてLLVMの話