[LLVMdev] Dependence Analysis [was: Flow-Sensitive AA]

Vikram S. Adve vadve at cs.uiuc.edu
Thu Aug 21 07:35:15 PDT 2008


Great, thanks!  How much work do you think it will take to bring it up  
to date with the LLVM IR, except *ignoring* first-class structs and  
arrays for now?  I believe llvm-gcc does not generate those in most  
cases and we can do a lot without supporting those.  What else is  
missing relative to the current LLVM IR?

Thanks,

--Vikram
Associate Professor, Computer Science
University of Illinois at Urbana-Champaign
http://llvm.org/~vadve




On Aug 21, 2008, at 3:37 AM, Wojciech Matyjewicz wrote:

>> Wojtek,
>>
>> Please see David's message below.  Have you or can you check in your
>> code, perhaps as a project for now?  That will allow us to start
>> looking at it and perhaps collaborating on it.
>
> Sure. For now, I am posting it as an attachment, because it does not
> build against the current SVN version. It is really basic (for  
> example,
> it cannot produce distance vectors, breaking conditions and it does  
> not
> handle affine loop bounds), but hope you find some pieces of it  
> useful.
>
> The attached version does not reflect the recent changes in the LLVM  
> IR
> (larger set of first-class types) yet, so it should be built against  
> one
> of the previous revisions (it works with r50174 for sure). It have  
> to be
> configured with --with-llvmsrc and --with-llvmobj switches. Build
> process will produce libmemdep.so shared library that can be load into
> opt. In the archive, there is also 'test' directory with simple  
> programs
> to test the pass. I suggest using such a toolchain:
>
> $ llvm-gcc -c -emit-llvm -O3 <program.c> -o - | opt - 
> load=loopmemdep.so
> -loopsimplify -anders-aa -loop-memdep -debug-only=loop-memdep
>
> (Debug output is quite verbose.)
>
> I am investigating what changes are necessary to add support for
> first-class structs and arrays and will prepare a version to check  
> in as
> a LLVM project if there still is interest.
>
> Wojtek
> <loopmemdep.tar.bz2>




More information about the llvm-dev mailing list