这些宏做什么(LLVM)?

时间:2016-08-22 09:44:17

标签: c++ compiler-construction llvm

我在Sparc LLVM后端找到了这段代码:

extern "C" void LLVMInitializeSparcTargetInfo() {
  RegisterTarget<Triple::sparc, /*HasJIT=*/true> X(TheSparcTarget, "sparc",
                                                   "Sparc");
  RegisterTarget<Triple::sparcv9, /*HasJIT=*/true> Y(TheSparcV9Target,
                                                     "sparcv9", "Sparc V9");
  RegisterTarget<Triple::sparcel, /*HasJIT=*/true> Z(TheSparcelTarget,
                                                     "sparcel", "Sparc LE");
}

我不明白XYZ宏做了什么,我找不到任何定义或文档。

1 个答案:

答案 0 :(得分:5)

是什么让你认为这些是宏?

对我而言,XYZ看起来像是一次性名称,用于实例化注册对象。

您应该寻找RegisterTarget的文档。