[LLVMdev] LLVM help
criswell at uiuc.edu
Wed Jun 23 08:23:18 PDT 2010
RAHUL GOYAL wrote:
> Sir I am trying to get the constant 2 in instruction y=x+2;
> Its intermediate representaton is like %y=add nsw i32 %x , 2
> If I use getOperand(2).getName() then I get null string.
> How can I get the value 2 ?
> Rahul Goyal
The first thing you have to do is to see if the operand is a
ConstantInt. You can do that by using:
ConstantInt * CI = dyn_cast<ConstantInt>(I->getOperand(2));
If CI is non-zero, then the operand is a ConstantInt.
Then all you have to do is use the getZExtValue() or getSExtValue()
(depending on whether you want to treat the constant as signed or
unsigned) method of ConstantInt:
unsigned value = CI->getZExtValue();
-- John T.
More information about the llvm-dev