(original) (raw)

Dear Zubin,

If I were you, I would write a ModulePass that uses the CallGraph analysis to get a call graph. I would then iterate over the nodes in the call graph and propagate information from callees to callers.

Regards,

John Criswell

On 11/29/17 4:02 PM, Zubin Pahuja via llvm-dev wrote:
Hello,

I am trying to count IR instructions in a function for static analysis using llvm pass. In contrast with existing examples, I am trying to include instruction counts of all the callees of the function.

Counting the instructions of a function is easy using passes, but iterating through the module's CallGraph is proving to be confusing. I believe I have to use CallGraphWrapperPass to get both module pass and its CallGraph. How do I iterate through the CallGraph in runOnModule()? A simple print callee names example would be highly appreciated.

Thanks,
Zubin


\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
LLVM Developers mailing list  
llvm-dev@lists.llvm.org  
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev  


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