源操作数和目标操作数 - LLVM 指令

Source and Destination Operands - LLVM Instruction

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

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

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

目标不是操作数。指令代表结果。

由您的循环编辑的指令列表 return 将从左到右为您提供参数,但指令是结果。

所以,如果指令是

%X = add i32 %a, 2, I->getOperand(0) 将 return %a 的值*,而 I->getOperand(1) 将 return i32 的值*

但是,指令(add)是结果==> %X.