[LLVMdev] [LLVMDEV]How could I get function name in this situation?

John Criswell criswell at illinois.edu
Wed Jan 26 13:15:32 PST 2011


On 1/26/11 3:06 PM, songlh at cs.wisc.edu wrote:
>> [snip]
>> -- John T.
> Sorry, I am asking the second question.
> "
> how to determine, within an LLVM pass, what the
> possible target(s) of an indirect function call might be?

There are at least two solutions.

The first is to use the CallGraph analysis pass.  It constructs a 
conservative call graph, meaning that any indirect function call is 
assumed to call any address-taken function.  For some applications, this 
is good enough, and for others, it isn't.

If you need more precise results, you can use DSA.  It is part of the 
poolalloc project.  It is a points-to analysis that attempts to build a 
more accurate call-graph.  In some cases, it probably works well; in 
other cases, it may not do any better than the LLVM CallGraph analysis.

You can get DSA by doing the following check-out:

svn co https://llvm.org/svn/llvm-project/poolalloc/trunk poolalloc

Directions on configuring it and examples of how to use it can be found 
in the SAFECode project: http://safecode.cs.illinois.edu.

If you want to use DSA, please let me know, and I can point you to an 
example in SAFECode or the Poolalloc source code that uses the 
DSCallGraph interface.

-- John T.

> "
>
> thanks a lot!
>
> Linhai
>>




More information about the llvm-dev mailing list