Grabbing Result of an Instruction.

What member function to use if I wish to operate on results of an instruction.

Instruction %1 = getelementptr inbounds [10 x i32]* %a, i32 0, i32 %0

I->getOperand will give me the operands.
How should I get hold of %1?


In LLVM, %1 is the instruction itself. This is because LLVM IR is in
SSA, so the "=" really means equality. If you look at a use of %1,
e.g. as an operand to another instruction, you'll see that it's the
instruction itself that is there (i.e. you can dyn_cast<Instruction>

Thanks Michael.
I wish to get Type of %1 i.e. result of instruction. Let me try out your suggestion. But It is still not clear to me how will dyn_cast will help here. I already have pointer to this particular instruction.

Hi Manish,

As Michael mentioned, the Instruction is its own result.

The Instruction class subclasses Value. If you treat the Instruction as a Value you will get what you want – just call I->getType() to get the type of the instruction.


Thanks!!! James and Michael. yes now got the idea how it is working.