X()、Y() 和 Z() 宏在 LLVM 中有什么作用?
What do the X(), Y() and Z() macros do in 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");
}
我不明白这些 X
、Y
、Z
宏的作用,我找不到它们的任何定义或文档。
是什么让您认为这些是宏?
对我来说,X
、Y
和 Z
看起来像是注册对象实例化的一次性名称。
您应该寻找 RegisterTarget
的文档。
我在 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");
}
我不明白这些 X
、Y
、Z
宏的作用,我找不到它们的任何定义或文档。
是什么让您认为这些是宏?
对我来说,X
、Y
和 Z
看起来像是注册对象实例化的一次性名称。
您应该寻找 RegisterTarget
的文档。