Chris told you how to get results of any pass (BUDataStructure,
TDDataStructure, etc.).
The CallGraph pass right now is very imprecise. Instead, the best way
to get CallGraph information is to do the following:
-- Get the TDGraph
-- Call tdGraph->getFunctionCalls(). This returns a list of
call site objects, which contain information about the potential callees
at each call site (if it is a direct call there is only one of course;
if it is a call through a function pointer, this tells you what callees
may be called, based on the results of the BU and TD analysis).
--Vikram
http://www.cs.uiuc.edu/~vadve
> -----Original Message-----
> From: llvmdev-admin at cs.uiuc.edu
> [mailto:llvmdev-admin at cs.uiuc.edu] On Behalf Of Chris Lattner
> Sent: Tuesday, November 12, 2002 5:31 PM
> To: Xiaodong Li
> Cc: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] (no subject)
>
>
> > I need to do interprocedural analysis for my project. I was
> wondering
> > if you can tell me how to create Bottom Up DSGraph and Call
> Graph in
> > the program. I know DSGraph *dsg = new DSGraph( F )
> > can create a DSGraph, but looks like that's only local DSGraph.
> > I also need to know how to create the call graph for the
> whole module in
> > the program.
>
> You get analysis graphs by using the pass subsystem. You can
> read all about this from here:
>
http://llvm.cs.uiuc.edu/docs/WritingAnLLVMPass.html
If you want a concrete example of data structure usage, look for an
example in the code base, like IP Mod/Ref.
-Chris
--
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev