[LLVMdev] CallGraph
Duncan Sands
baldrick at free.fr
Fri Apr 26 04:24:35 PDT 2013
Hi,
On 26/04/13 13:17, Alexandru Ionut Diaconescu wrote:
> Thanks for the response.
> I looked and I cannot see what exactly I need. I saw getCalledFunction() so I
> need CallSite CS(cast<Value>(II)) where II is a basic block iterator, so an
> instruction. It seems not easier than the "unelegant" version....if I am still
> at the Instruction level...
the call graph gives you a graph where the nodes are functions, and there is an
edge from function F to function G if function F calls function G.
>
> I need a method that takes from a "leaf" basic block from a function (Maybe
> there is the possibility not to have only one "end" basic block) the connection
> with an entry basic block of another function.
Most functions don't end in a call to another function, they end by returning
control to the function that called them.
Ciao, Duncan.
>
> Thank you !
>
>
>
> On Fri, Apr 26, 2013 at 1:04 PM, Duncan Sands <baldrick at free.fr
> <mailto:baldrick at free.fr>> wrote:
>
> Hi,
>
>
> On 26/04/13 11:19, Alexandru Ionut Diaconescu wrote:
>
> Hello,
>
> I try to make a big CFG (control flow graph) by combining all the CFG-s
> from all
> the functions of a module. I still have one problem : I want to get the
> links
> between functions.
>
> For CFG-s, I used CallGraphNode->second->__getFunction, then
> Function_iterators
> and succ_iterators, so I have all the links between BBs. Now, the
> questions is
> how do I link BBs from different functions?
>
> I can do it in a way not so elegant. Take the last BB of every function,
> then
> getTerminator and see that function it is called and then link to
> (instruction-2-instruction).
>
>
> calls don't have to be terminators, so that wouldn't work properly anyway.
>
>
>
> There must be there a better way to get the linkage between BBs that are in
> different functions.
>
>
> Sure, take a look at include/llvm/Analysis/__CallGraph.h
>
> Ciao, Duncan.
> _________________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev
> <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>
>
>
>
> --
> Best regards,
> Alexandru Ionut Diaconescu
More information about the llvm-dev
mailing list