如何获取LLVM-IR中phi变量包含的程序变量
对于一个像如何获取LLVM-IR中phi变量包含的程序变量,llvm-ir,ssa,Llvm Ir,Ssa,对于一个像 %.0 = phi i32* [ @y, %bb2 ], [ @z, %bb3 ] %.1 = phi i32* [ %.0, %bb4 ], [ %.x, %bb19 ] store i32* %.1, i32** @x, align 8 因此,如果我在llvm过程中进行迭代,并且在第三条指令中遇到0.1的使用。我将其存储在值类中(使用指令->GetOperator(0)),比如说名称为v1。现在,我如何遍历0.1可能包含的变量y、z和x。在v1上调用什么 我曾尝试阅读llvm文
%.0 = phi i32* [ @y, %bb2 ], [ @z, %bb3 ]
%.1 = phi i32* [ %.0, %bb4 ], [ %.x, %bb19 ]
store i32* %.1, i32** @x, align 8
因此,如果我在llvm过程中进行迭代,并且在第三条指令中遇到0.1的使用。我将其存储在值类中(使用指令->GetOperator(0)),比如说名称为v1。现在,我如何遍历0.1可能包含的变量y、z和x。在v1上调用什么
我曾尝试阅读llvm文档和以下链接,但没有给出llvm过程的语法
我正在尝试下面的代码
for (auto &I : BB) {//over basic blocks
Instruction *Inst=&I;
if(Inst->getOpcode()==31){
Value *v=Inst->getOperand(0);
//now use what to get x,y,z as through 0.1
}
}