我知道我可以使用下面的代码来遍历指令的操作数:
unsigned i = 0;
unsigned e = I ->getNumOperands();
while(i != e) {
Value *operand = I->getOperand(i);
i++;
}
但是如何区分源操作数和目标操作数呢?
最佳答案
目标不是操作数。指令代表结果。
循环返回的指令列表将从左到右为您提供参数,但指令就是结果。
所以,如果指令是
%X = add i32 %a, 2, I->getOperand(0) 将返回 %a 的值*,而 I->getOperand(1) 将返回 i32 的值*
但是,指令(add)是结果==> %X。
关于c++ - 源操作数和目标操作数 - LLVM 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48158651/