[LLVMdev] Printing Function Arguments
ivtm
martinaide1 at yahoo.com
Sun Sep 27 19:15:05 PDT 2009
Hi Nick,
Thanks, that seemed to work.
Nick Lewycky wrote:
>
> ivtm wrote:
>> I am processing the LLVM instructions and right now I am at the 'call'
>> instruction.
>> For now I just want to print the argument type.
>>
>> For example in the following:
>>
>> %0 = tail call i32 (...)* @__FFF (i32 8) nounwind; <i32> [#uses=1]
>>
>> I need to get access to 'i32' and '8' separately.
>>
>> I do:
>>
>> CallInst *CI = dyn_cast<CallInst>(I);
>> Value *v = CI->getOperand(1)
>>
>> I can get the type via v->getType() and that returns 'i32', which is
>> good.
>>
>> But I also need to get the value '8'.
>>
>> I can get it via v->getValueID(), but in the documentation it says not to
>> use that function.
>
> Heh. No, getValueID() returns '8' as the "ConstantIntVal" enum, not the
> actual argument number.
>
>> Any other ideas what is the proper way to access the value '8' ?
>
> It's a ConstantInt, so cast it and retrieve the APInt then pull out the
> number. Here:
>
> unsigned val;
> if (ConstantInt *CI = dyn_cast<ConstantInt>(v)) {
> val = CI->getValue()->getSExtValue();
> }
>
> Nick
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
--
View this message in context: http://www.nabble.com/Printing-Function-Arguments-tp25638981p25639806.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
More information about the llvm-dev
mailing list