I am trying to implement GVN which requires processing of operands of an Instruction.
When I started to design, I assumed operands of an Instruction are of type Instruction. But now I would like to extend to operands of other types.
I would like to know what are the other possibilities for the Type of an operand of an Instruction.
I would like to know what are the other possibilities for the Type of an
operand of an Instruction.
A good place to start would be the class hierarchy diagram here:
http://llvm.org/docs/doxygen/html/classllvm_1_1Value.html. It looks
like all of those Values are potential operands to an instruction (in
the right circumstances: MDNodes & MDStrings are rare, but exist for
some intrinsics I believe).
The main oddity is that the "Argument" sub-hierarchy doesn't really
exist as a separate, but is there so that people can deal with
Instructions and ConstantExprs in a uniform way.