源和目标操作数 - LLVM指令

时间:2018-01-08 21:57:18

标签: c++ compiler-construction llvm operands

我知道我可以使用以下代码循环遍历指令的操作数:

    unsigned i = 0;
    unsigned e = I ->getNumOperands();
    while(i != e) {
        Value *operand = I->getOperand(i);
        i++;
    }

但是如何区分源操作数和目标操作数?

1 个答案:

答案 0 :(得分:1)

目的地不是操作数。该指令代表结果。

循环返回的指令列表将从左到右给出参数,但指令是结果。

所以,如果指令是

%X =添加i32%a,2,I-> getOperand(0)将返回%*的值*,而I-> getOperand(1)将返回i *的值*

然而,指令(add)是结果==> %X