[LLVMdev] Finding call points to a function

Nick Lewycky nicholas at mxc.ca
Wed Sep 9 23:36:38 PDT 2009


Rakesh Komuravelli wrote:
> Hi,
> 
> I am writing an LLVM Pass and I would like to know how would I do the 
> following:
> 
> 1. I have a function foo, and I need to get all the call points calling 
> this function in each Function of the Module. The only way I can think 
> of is to iterate over the BasicBlocks of each Function, look for all the 
> Call Instructions and check if the called function is foo. I was 
> wondering if there is any other better way to do this.

Iterate over @foo's use list. 
http://wiki.llvm.org/HowTo:_Find_all_call_sites_of_a_function

> 2. Is it possible to distinguish a class method from a non class method 
> while analyzing the emitted LLVM code for a C++ program? Because, I need 
> to interpret the calls made to foo differently in a class method and in 
> a non class method.

No. Methods turn into functions that happen to take the class type 
pointer as first argument.

Nick




More information about the llvm-dev mailing list