对于像%cmp7 = icmp eq i32 %6 %7
我想获取所有三个寄存器/符号名称的 LLVM IR 指令(即%cmp %6 and %7
)
%cmp
现在我可以通过命令获取字符串,pi->getName()
其中 pi 是指令指针。但是,当我尝试获取 oprand 名称时,我通过键入pi->getOperand(0)->getName()
.
我试图isa<Instruction>(pi->getOperand(0))
检查这是否是一条指令,它返回真但pi->getOperand(0)->hasName()
返回假。让我感到奇怪的是,为什么两者pi
都是pi->getOperand(0)
指令但只有pi
名称?
有什么想法可以通过使用 API获取操作数名称(字符串%6
和 此处)?%7
我使用的 LLVM 版本是 3.4.2