Compiler construction 获取操作数或结果的名称

Compiler construction 获取操作数或结果的名称,compiler-construction,clang,llvm,static-analysis,Compiler Construction,Clang,Llvm,Static Analysis,我目前正在使用llvm(通过LLVMIR)对c代码进行静态分析。 我首先将c代码转换为.ll文件,然后使用LLVM框架对其进行解析。我使用的IR是SSA形式的,因此指令的每个结果都是不同的。但问题是,如果结果或操作数只有一个数字名称,则无法获取其名称。(例如%1、%2、…)。我试着用下面的代码来得到这个名字 Instruction & inst = *inst_it; std::string name = inst.getOperand(0)->getName().str();

我目前正在使用llvm(通过LLVMIR)对c代码进行静态分析。 我首先将c代码转换为.ll文件,然后使用LLVM框架对其进行解析。我使用的IR是SSA形式的,因此指令的每个结果都是不同的。但问题是,如果结果或操作数只有一个数字名称,则无法获取其名称。(例如%1、%2、…)。我试着用下面的代码来得到这个名字

Instruction & inst = *inst_it;
std::string name = inst.getOperand(0)->getName().str();
如果变量“name”的名称类似[%sum.175.unr],则该变量将具有有效的字符串值,但对于%1、%2、。。上面的代码只返回一个空字符串

示例.ll文件

%5 = mul nsw i64 %indvars.iv84, %0
%6 = add nsw i64 %1, %indvars.iv84
尝试获取%5或%0的名称将给我一个空字符串,但使用indvars.iv84,我将得到正确的结果。阅读文档对发现问题没有多大帮助。这种情况下会出现什么问题?

可能重复的可能重复的