[llvm-dev] How to efficiently extract the calledFunction from a complex CallInst?
    Shen Liu via llvm-dev 
    llvm-dev at lists.llvm.org
       
    Thu Nov 12 19:27:37 PST 2015
    
    
  
Hi all,
Usually if we want to get the called Function we can directly use
CallInst->getCalledFunction(), however, today i encounter an unusual
CallInst as follows:
 %call11 = call double (...)* bitcast (double ()* @quantum_frand to double
(...)*)()
the original C source involve type cast:
float u,v;
extern double quantum_frand();
   u = 2 * quantum_frand() - 1;
   v = 2 * quantum_frand() - 1;
In this case, CallInst->getCalledFunction() returns a nullptr unusually, I
printed out the getOperand(0) and found the operand is the whole thing of
 "double (...)* bitcast (double ()* @quantum_frand to double (...)*)()".
Any member function calling on that fails so i don't know whether there is
an efficient way to exactly get the called function @quantum_frand(...)
here? Thanks!
Best regards,
Shen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151112/61000ee3/attachment.html>
    
    
More information about the llvm-dev
mailing list