[LLVMdev] Memory dependence analysis

John Criswell criswell at illinois.edu
Fri Jun 24 08:45:27 PDT 2011


On 6/24/11 5:20 AM, Andreas Wilhelm wrote:
>
> Where can I find some information about MemoryDependenceAnalysis and 
> DataStructureAnalysis?
> It would be interesting which kinds of dependence they're able to find 
> and which not.

I haven't used MemoryDependenceAnalysis myself, but I recommend that you 
read its doxygen documentation:

http://llvm.org/doxygen/classllvm_1_1MemoryDependenceAnalysis.html.

For DSA, you will want to read the documentation in the docs 
subdirectory of the poolalloc project (if you don't know how to download 
poolalloc, please feel free to ask on the list).  You may also want to 
read the paper on DSA (http://llvm.org/pubs/2007-06-10-PLDI-DSA.html) 
and Chris Lattner's thesis 
(http://llvm.org/pubs/2005-05-04-LattnerPHDThesis.html).

Note that DSA is a unification-based points-to analysis (among other 
things): it will generate for you a graph in which each node represents 
an abstract memory object and the edges represent pointers between 
memory objects (for example, it can tell you that field 5 of abstract 
memory object A points to the second field of abstract memory object 
B).  You can build things like reaching definitions analysis, alias 
analysis, etc., etc. using DSA, but it doesn't do these things for you 
"out of the box."

-- John T.

>
> Andreas
>



More information about the llvm-dev mailing list