源操作数和目标操作数 - 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.
我知道我可以使用下面的代码循环遍历一条指令的操作数:
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.