我正在尝试获取指令的行信息。我有过
const CallInst* callInst = dyn_cast<const CallInst>(&*I);
MDNode *N = callInst->getMetadata("dbg");
N显然是空的,但我已经用"clang -g -S -emit-llvm“编译了输入IR。有人知道为什么会这样吗?
发布于 2014-04-17 07:47:43
例如,它是由一个或另一个优化生成的,因为传递-emit-llvm
不仅会发出llvm,还会首先对您的程序应用优化包。
要排除优化的影响,并在前端之后立即看到纯代码,请执行clang -g -S -emit-llvm -mllvm -disable-llvm-optzns
并确保您的指令具有所需的元数据。
https://stackoverflow.com/questions/23089316
复制相似问题