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

Devang Patel dpatel at apple.com
Fri Aug 22 13:20:11 PDT 2008


Hi Wojtek,

This is a great start. I'll focus and try to understand your interface  
design and choices. Here are my initial thoughts based on a quick read.

The only interface provided by LoopMemDepAnalysis is "bool  
carriesDependence()" which may not be sufficient. But we can extend  
this.

The ArrayDepTest provides testDependenc() as well as testPositions().  
I'm not very clear about the testPositions(). Would it be possible for  
you to explain this ?

One nit-pick, I see that some of the interfaces use tons of parameter,  
which is something I'd like reduce for ease of use.

Thanks for posting your work.
-
Devang
On Aug 21, 2008, at 1: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>_______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list