[LLVMdev] Memory dependence analysis

Andreas Wilhelm andreas.wilhelm at gmx.com
Fri Jun 24 03:20:32 PDT 2011


On 22.06.2011, at 17:03, John Criswell wrote:

> On 6/22/11 5:34 AM, Andreas Wilhelm wrote:
>> 
>> Hello,
>> 
>> I'm looking for a way to identify dependencies of function-pairs (memory-dependency, control-dependency...) in order to parallelize them.
>> For aliasing problems I use the DataStructureAnalysis.
> 
> I'm assuming that this is the DSA analysis in the poolalloc module.  Be forewarned that:
> 
> 1) DSA works with LLVM 2.7; I don't believe it works with LLVM mainline yet.
> 2) The alias analysis interface to DSA hasn't been maintained in awhile; you'll need to examine the DSGraphs directly.
> 
> 
>> To solve simple memory- and control-dependency problems I want to use
>> memdep. But unfortunately I even fail with following simple C++ example...
>> 
>> int a( int n) { return n; }
>> int b( int n) { return n; }
>> int c( int n) { return n; }
>> 
>> int main( int argc, char** argv) {
>> 
>>   int x = a( argc);
>>   b( 0);
>>  
>>   if ( x)
>>     x = 0;
>> 
>> 
>>           
>>   return ( c( x)); 
>> }
>> 
>> ... The result of memdep shows a dependency between the callsite of b() and the call of a(). Why?
>> Moreover I want to get the dependency between the call to c() and the result of a(). How can I obtain this?
>> 
> 
> I can't comment on what memdep does as I've never used it; others more knowledgeable will have to comment.
> 
> Regarding your last question on following the def of x to the use in c(x), that looks like a simple data-flow analysis problem; just follow the def-use chain of the SSA variables from the call of a() to the call of c() in main().
> 
> -- John T.

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.

Andreas

> 
>> Thanks in advance,
>> Andreas
>> 
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110624/2d546171/attachment.html>


More information about the llvm-dev mailing list