我是LLVM的初学者。
我正在尝试向指令添加元数据。我尝试使用LLVM-Source Level Debugging中的以下代码:
if (MDNode *N = I->getMetadata("dbg")) { // Here I is an LLVM instruction
DILocation Loc(N); // DILocation is in DebugInfo.h
unsigned Line = Loc.getLineNumber();
StringRef File = Loc.getFilename();
StringRef Dir = Loc.getDirectory();
}
I
中I->getMetadata("dbg")
的数据类型是什么?我该如何定义I
?
谢谢:)
答案 0 :(得分:3)
I
是Instruction
。通常,在整个LLVM代码库,文档和代码示例中,
I
是Instruction
F
是Function
M
是Module
有关LLVM模块的高级结构以及如何访问指令的更多信息,请参阅