[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