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

Wojciech Matyjewicz wmatyjewicz at fastmail.fm
Thu Aug 21 01:37:11 PDT 2008


> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: loopmemdep.tar.bz2
Type: application/octet-stream
Size: 36506 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080821/ec3e1241/attachment.obj>


More information about the llvm-dev mailing list