On Sep 29, 2006, at 2:05 PM, Domagoj Babic wrote:> > Check out scc_* iterators. Also note that the call graph > is not aware of the indirect calls, so you will need to write your > own CG implementation if you need to handle function pointers > soundly. >Chris, is this true? If so, it seems like a bad property for the CallGraphSCCPass framework. --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.cs.uiuc.edu/
On Fri, 29 Sep 2006, Vikram Adve wrote:> On Sep 29, 2006, at 2:05 PM, Domagoj Babic wrote: >> Check out scc_* iterators. Also note that the call graph >> is not aware of the indirect calls, so you will need to write your >> own CG implementation if you need to handle function pointers >> soundly. > Chris, is this true? If so, it seems like a bad property for the > CallGraphSCCPass framework.This isn't true. The *default* implementation of the callgraph interface handles function pointers soundly, just non-aggressively: it assumes they can point to any function. Of course you can provide your own implementation of the CallGraph interface, or use something more aggressive (e.g. DSA). If you're seeing cases this isn't happening, please file a bug. -Chris -- http://nondot.org/sabre/ http://llvm.org/
Chris, Thx for correcting me. I don't remember how I came to that conclusion. Domagoj On 9/29/06, Chris Lattner <sabre at nondot.org> wrote:> On Fri, 29 Sep 2006, Vikram Adve wrote: > > On Sep 29, 2006, at 2:05 PM, Domagoj Babic wrote: > >> Check out scc_* iterators. Also note that the call graph > >> is not aware of the indirect calls, so you will need to write your > >> own CG implementation if you need to handle function pointers > >> soundly. > > Chris, is this true? If so, it seems like a bad property for the > > CallGraphSCCPass framework. > > This isn't true. The *default* implementation of the callgraph interface > handles function pointers soundly, just non-aggressively: it assumes they > can point to any function. Of course you can provide your own > implementation of the CallGraph interface, or use something more > aggressive (e.g. DSA). > > If you're seeing cases this isn't happening, please file a bug. > > -Chris > > -- > http://nondot.org/sabre/ > http://llvm.org/ > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >