[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses

John Criswell jtcriswel at gmail.com
Tue May 19 07:12:32 PDT 2015


On 5/18/15 10:45 PM, Félix Cloutier wrote:
> Hi all,
>
> I have one analysis pass that I want to perform on call graph SCCs. 
> However, for each function in the SCC, I need function-level analyses, 
> like the dominator tree and the memory dependency analysis.
>
> I’ve been told before 
> <http://stackoverflow.com/questions/30059622/using-dominatortreewrapperpass-in-callgraphsccpass> that 
> these were not available from a CallGraphSCCPass. What would be the 
> best approach for me to access this information? Should I run the 
> passes manually, or is there another, more pass-scheduler-friendly 
> approach?

I would write a ModulePass that simply iterates over the call graph.  
LLVM provides a CallGraph analysis which one can use to find SCCs; DSA 
has an analysis called CallTargets which does "real" CallGraph analysis 
(which means that it tries to reason about function pointers, though I 
cannot guarantee that its reasoning will be as accurate as you want).

If you use a ModulePass, can you analyze any part of the program you 
like, and you can use FunctionPasses.

Regards,

John Criswell

>
> Félix
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev


-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150519/0c072845/attachment.html>


More information about the llvm-dev mailing list