如何获取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
    }
}