在LLVM中获取非常数操作数

时间:2019-03-09 01:36:26

标签: c++ llvm

说我有一条类似%res = add i32 4, %var的指令,我只想提取操作数%var,因为它是一个变量。我的问题是如何确定操作数是常数还是右值,以便可以在传递过程中排除它们。

谢谢。

1 个答案:

答案 0 :(得分:1)

使用Instruction::value_op_begin()Instruction::value_op_end()Instruction::operand_values()覆盖指令的操作数,然后使用isa<Constant>()测试给定的操作数是否为常数1。