[LLVMdev] indirect calls tracking and control flow graph

John Criswell criswell at illinois.edu
Mon Apr 28 12:30:02 PDT 2014


Dear Petsas,

For analyzing indirect function calls, your best bet is probably to use 
the CallGraph analysis pass that is part of DSA.  DSA is included in the 
poolalloc code; you can get directions on downloading poolalloc from the 
SVA web page: http://sva.cs.illinois.edu/docs/Install.html.

The release_32 branch works with LLVM 3.2.  I think mainline poolalloc 
was recently updated to work with LLVM 3.4.

Regards,

John Criswell


On 4/28/14 8:10 AM, Petsas Athanasios wrote:
> Dear all,
>
> I would like to keep track of all the indirect calls that may caused 
> from function
> pointers inside a program. I need this in order to be able to 
> construct the control
> flow graph of all the indirect calls, that is which function is legal 
> to call another
> function.
>
> Is there a module that implements this functionality in llvm? If not, 
> is there a way to
> do it? Maybe through implementing a pass. I am new to llvm. Could you 
> suggest me
> a way to start doing this? Perhaps the llvm intermediate code can help 
> me on this.
> Do you know where this code is being produced? or what files or passes 
> do I have
> to modify for this?
>
> Until now I have used this command to produce and study the llvm 
> bitcode for a test
> program:
> clang -S -emit-llvm fpointers.c -c -o fpointers.bc.text
>
> Thank you,
>
> -- 
> Thanasis Petsas
> Distributed Computing Systems (DCS)
> Institute of Computer Science (ICS/FORTH)
> Heraklion, Crete
> Greece (GR)
>
> http://www.thanasispetsas.com/
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140428/480e8692/attachment.html>


More information about the llvm-dev mailing list