[LLVMdev] how to get the InvodInst 's Operand Name?

Duncan Sands baldrick at free.fr
Thu Mar 26 03:51:15 PDT 2009


Hi zhangzw,

>> invoke void @__cxa_throw(i8* %7, i8* bitcast
>> (%struct.__fundamental_type_info_pseudo* @_ZTIi to i8*), void (i8*)*
>> null)
>> noreturn         to label %invcont unwind label %lpad
>
> >>are you trying to get the name "@_ZTIi" or "@__cxa_throw"?
> 
> yes! i want get the name @_ZTi or @__cxa_throw,
> the latter @__cxa_throw i can get it throw  value->getName(), but the
>  @_ZTi it  did n't has  name!

if II is the invoke instruction, you can get the names as follows:

  "@__cxa_throw": II->getCalledFunction()->getValueName()
  "@_ZTi": II->getOperand(4)->stripPointerCasts()->getValueName()

The first one won't work for indirect calls.  The second one
won't work in more complicated situations.  Why do you want
the names anyway?

Ciao,

Duncan.



More information about the llvm-dev mailing list