Hi Duncan,>>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! zhangzw thanks 2009/3/26 Duncan Sands <baldrick at free.fr>:> 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 >> >> say I want to get the Invoke's Operand's name > > are you trying to get the name "@_ZTIi" or "@__cxa_throw"? > > Ciao, > > Duncan. >
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.
Hi Duncan, thanks ! hehe .>> Why do you want the names anyway?because i 'am working on llvm to support sjlj-eh for my target. for my side, I lookup the llvm invoke instruction to build the sjlj-eh on sjlj-eh it's need store the landing pad index to stack before call __cxa_throw, but it seems no ! in llvm-backend because it only suport dwarf-eh! so i have to build another node to store landingpad index to stack before llvm invoke instruction. am i write for the direction? hehe. zhangzw 2009/3/26 Duncan Sands <baldrick at free.fr>:> 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. >
Seemingly Similar Threads
- [LLVMdev] how to get the InvodInst 's Operand Name?
- [LLVMdev] how to get the InvodInst 's Operand Name?
- [LLVMdev] how to get the InvodInst 's Operand Name?
- [LLVMdev] how to get the InvodInst 's Operand Name?
- [LLVMdev] how to get the InvodInst 's Operand Name?