[LLVMdev] indirect calls tracking and control flow graph

Petsas Athanasios petsas at ics.forth.gr
Tue May 6 02:49:27 PDT 2014


Ok, I will switch to release_32. Thank you very much for your help!

Regards,
Thanasis Petsas


On Mon, May 5, 2014 at 9:34 PM, John Criswell <criswell at illinois.edu> wrote:

>  Dear Petsas,
>
> I personally haven't used Poolalloc/DSA with anything after LLVM 3.2 or
> later.  Others have applied patches to get it to work with newer versions
> of LLVM.
>
> That said, after speaking with Will, it looks like poolalloc trunk was
> patched to work with LLVM trunk.  Therefore, my best recommendation is to
> either:
>
> 1) Switch to LLVM trunk and try it with poolalloc trunk.  It may or may
> not work, depending on how much LLVM trunk has changed.
>
> 2) Switch to using the release_32 branch of both LLVM and Poolalloc.
> Unless you need newer LLVM features, I'd go this route as LLVM 3.2 isn't
> changing anymore. :)
>
> -- John T.
>
>
>
> On 5/4/14 5:52 AM, Petsas Athanasios wrote:
>
>  Thank you,
>
>  I tried to compile it with llvm 3.4 through these commands:
>
>
> petsas at shinigami:~/software/poolalloc$ ./configure
> --with-llvmsrc=/home/petsas/software/llvm
> --with-llvmobj=/home/petsas/software/llvm
>
> petsas at shinigami:~/software/poolalloc$ make
>
> but I'm getting get this error:
>
> make[1]: Entering directory `/home/petsas/software/poolalloc/lib'
> make[2]: Entering directory `/home/petsas/software/poolalloc/lib/DSA'
> llvm[2]: Compiling CallTargets.cpp for Debug+Asserts build (PIC)
> CallTargets.cpp:35:3: error: use of undeclared identifier 'DEBUG_TYPE'
>   STATISTIC (DirCall, "Number of direct calls");
>   ^
> /home/petsas/software/llvm/include/llvm/ADT/Statistic.h:165:38: note:
> expanded from macro 'STATISTIC'
>   static llvm::Statistic VARNAME = { DEBUG_TYPE, DESC, 0, 0 }
>                                      ^
> CallTargets.cpp:36:3: error: use of undeclared identifier 'DEBUG_TYPE'
>   STATISTIC (IndCall, "Number of indirect calls");
>   ^
> ...
>
>  Any ideas?
>
>
> On Fri, May 2, 2014 at 5:53 PM, John Criswell <criswell at illinois.edu>wrote:
>
>>  On 5/2/14, 9:49 AM, Petsas Athanasios wrote:
>>
>>
>>
>>
>> On Mon, Apr 28, 2014 at 10:30 PM, John Criswell <criswell at illinois.edu>wrote:
>>
>>>  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.
>>>
>>
>>  Do you know where I can find mainline poolalloc so as I can compile it
>> with
>>  LLVM 3.4 ?
>>
>>
>>  svn co http://llvm.org/svn/llvm-project/poolalloc/trunk poolalloc
>>
>> Regards,
>>
>> John Criswell
>>
>>
>>
>>
>>
>>>
>>> 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 listLLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>>
>>>
>>
>>
>> --
>> Thanasis Petsas
>> Distributed Computing Systems (DCS)
>> Institute of Computer Science (ICS/FORTH)
>> Heraklion, Crete
>> Greece (GR)
>>
>> http://www.thanasispetsas.com/
>>
>>
>>
>
>
> --
> Thanasis Petsas
> Distributed Computing Systems (DCS)
> Institute of Computer Science (ICS/FORTH)
> Heraklion, Crete
> Greece (GR)
>
> http://www.thanasispetsas.com/
>
>
>


-- 
Thanasis Petsas
Distributed Computing Systems (DCS)
Institute of Computer Science (ICS/FORTH)
Heraklion, Crete
Greece (GR)

http://www.thanasispetsas.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140506/51bc973b/attachment.html>


More information about the llvm-dev mailing list