是否可以在没有 MCSubtargetInfo 的情况下实现 <target>MCInstPrinter class?
Is it possible to implement the <target>MCInstPrinter class without MCSubtargetInfo?
我正在为目标编写 LLVM 的自定义后端,并且没有指定任何子目标。我想打印程序集并尝试实现 MCInstPrinter::ABCMCInstPrinter class.
我 运行 遇到的问题是纯虚函数
virtual void printInst(const MCInst *MI, raw_ostream &OS, StringRef Annot,
const MCSubtargetInfo &STI) = 0;
采用 MCSubtargetInfo 类型的参数 STI。我是 LLVM 的新手,所以我想我只是不了解 MC 层 classes 的完整结构,但是 MCSubtargetInfo 参数是否暗示我需要定义一个 ABCSubtarget 来能够打印装配?如果不是,那么 MCSubtargetInfo class 的作用是什么?
LLVM 文档中的 llvm::MCSubtargetInfo Class Reference page 声明以下内容作为 MCSubtargetInfo 的详细说明
Generic base class for all target subtargets.
这是另一个原因,我认为这个 class 只对有子目标的目标是必要的,但是,尽管如此,在汇编打印中有一个纯虚函数的这种类型的参数。
我真的需要 一个 ABCSubtarget 实现来让我的后端打印吗?
如有任何正确方向的提示,我们将不胜感激。感谢您的帮助。
是的,您需要为后端定义至少一个子目标。如果您没有任何可以控制子目标选择的选项,那么它应该不会太糟糕,但是 class 需要在那里才能工作。
我正在为目标编写 LLVM 的自定义后端,并且没有指定任何子目标。我想打印程序集并尝试实现 MCInstPrinter::ABCMCInstPrinter class.
我 运行 遇到的问题是纯虚函数
virtual void printInst(const MCInst *MI, raw_ostream &OS, StringRef Annot,
const MCSubtargetInfo &STI) = 0;
采用 MCSubtargetInfo 类型的参数 STI。我是 LLVM 的新手,所以我想我只是不了解 MC 层 classes 的完整结构,但是 MCSubtargetInfo 参数是否暗示我需要定义一个 ABCSubtarget 来能够打印装配?如果不是,那么 MCSubtargetInfo class 的作用是什么?
LLVM 文档中的 llvm::MCSubtargetInfo Class Reference page 声明以下内容作为 MCSubtargetInfo 的详细说明
Generic base class for all target subtargets.
这是另一个原因,我认为这个 class 只对有子目标的目标是必要的,但是,尽管如此,在汇编打印中有一个纯虚函数的这种类型的参数。
我真的需要 一个 ABCSubtarget 实现来让我的后端打印吗?
如有任何正确方向的提示,我们将不胜感激。感谢您的帮助。
是的,您需要为后端定义至少一个子目标。如果您没有任何可以控制子目标选择的选项,那么它应该不会太糟糕,但是 class 需要在那里才能工作。