五十から一TargetMachineなどのLLVM毎日話

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/snsn1984/article/details/90341157

そのサブクラスをTargetMachineなど:

上記は、我々は単にこの記事TargetMachineなどのクラスとそのサブクラスで分析TargetMachineなどのクラスを記述しています。TargetMachineなどのクラスがである/ LLVM /ターゲット/ TargetMachine.h含まれ  た文書を。

ターゲット・マシンの親クラスとして取得対象マシン情報エントリとしてTargetMachineなどクラスが直接特定のプラットフォームTargetMachineなどのクラスを継承したが、最初LLVMTargetMachineクラス継承されません。

TargetMachine.h

class LLVMTargetMachine : public TargetMachine {

次いで、特定のプラットフォームTargetMachineなどクラス、次いでLLVMTargetMachineクラス(X86プラットフォームに、例えば)を継承

libに/ターゲット/ X86 / X86TargetMachine.h

class X86TargetMachine final : public LLVMTargetMachine {

したがって、クラスXXXTargetMachine TargetMachineなど、LLVMTargetMachine特定のターゲットプラットフォーム、およびAS間の関係が示さ:

:から図LLVM :: TargetMachineなどクラスリファレンス

TargetMachineなどの仮想メソッド:

基于前文我们已经提到的LLVM后端文档跟不上代码的变化,实际上现在除了TargetMachine类,Target description classes 中其他的类已经都不在include/llvm/Target目录之下。与此同时,在TargetMachine类中也不存在获取其他类包含的信息的接口,目前TargetMachine仅存的获取Target description classes中的类所包含信息的接口如下(其他的接口多是获取具体信息):

  /// Create a DataLayout.
  const DataLayout createDataLayout() const { return DL; }

创建DataLayout.

  virtual const TargetSubtargetInfo *getSubtargetImpl(const Function &) const {
    return nullptr;
  }

获取TargetSubtargetInfo。

其他的Target description classes(除TargetMachine和DataLayout之外):

以TargetLowering为例:TargetLowering(include/llvm/Codegen/TargetLowering.h)

TargetLoweringBase和TargetLowering都在include/llvm/Codegen/TargetLowering.h之中。而具体目标平台的XXXTargetLowering类则是在lib/Target下具体的目标平台目录之中。以X86平台为例,其则是在lib/Target/X86/X86ISelLowering.h 之中:

  //  X86 Implementation of the TargetLowering interface
  class X86TargetLowering final : public TargetLowering {

这个文件的注释也描述的很清晰:

// This file defines the interfaces that X86 uses to lower LLVM code into a
// selection DAG.

其他几个类的情况虽然有细微差别,但是情况都差不多。

 

したがって、本稿での分析は、実際には、の組み合わせであるターゲット説明クラスおよび特定の抽象記述インタフェースの実装ターゲットコード解析、バックエンド文書6つの部分1および5でした。

 

関連コンテンツ:

小さな天使父親:三〇から七LLVMバックエンドのプロフィールのLLVM毎日話(杭州シェアPPT)

小さな天使父親:四〇から七LLVMバックエンド文書の解析のLLVM毎日話

小さな天使父親:1を解析し、毎日四〇から八LLVMバックエンド文書についてLLVMの話

小さな天使父親:2を解析する毎日四〇から九LLVMバックエンド文書についてLLVMの話

小さな天使父親:3を解析50 LLVMバックエンド文書のLLVM毎日話 - ゴール記述クラス

おすすめ

転載: blog.csdn.net/snsn1984/article/details/90341157