<div dir="ltr">Here's a thread that talk about the basic problems: <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130701/179665.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130701/179665.html</a><div>

I think it's a pretty big effort to fix it all, but I haven't been able to put in any time on it, so I may be overly pessimistic.</div><div><br></div><div>Sebastian Pop wrote a delinearizer, so at least that part is done.</div>
<div>See [llvm] r194527 - delinearization of arrays</div><div><span class="" tabindex="-1"><br></span></div><div><span class="" tabindex="-1">Preston</span></div><div><span class="" tabindex="-1"><br></span></div>
<div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jan 16, 2014 at 3:33 AM, César <span dir="ltr"><<a href="mailto:divcesar@gmail.com" target="_blank">divcesar@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Preston,<br>
<br>
can you elaborate what exactly is the problem with DependenceAnalysis<br>
or point me to a thread/bug report discussing it? Do you think that<br>
this will require a large effort? I would like to put some time on<br>
this and also on the graph dep. builder.<br>
<br>
<br>
César.<br>
<br>
<br>
2013/12/27 Preston Briggs <<a href="mailto:preston.briggs@gmail.com">preston.briggs@gmail.com</a>>:<br>
<div><div class="h5">> Hi,<br>
><br>
> There's no implementation yet of the dependence graph builder.<br>
><br>
> You can use DependenceAnalysis to get the info you want by expensively<br>
> testing all pairs of memory references.<br>
><br>
> What you call "intra iteration" are "loop-independent" dependences, and are<br>
> tested at the same time as the loop-carried dependences.<br>
><br>
> (In the old days, people tried to say "inter" and "intra", but it was too<br>
> confusing during talks. It was much clearer to say loop independent and loop<br>
> carried.)<br>
><br>
> I know of no other check-in code that uses DependenceAnalysis. Which is<br>
> appropriate; it's not ready for use (that is, it's incorrect). I<br>
> misunderstood how GEPs work, so it will sometimes miss existing dependences.<br>
><br>
> Preston<br>
><br>
><br>
><br>
><br>
> On Fri, Dec 27, 2013 at 8:46 AM, Snehasish Kumar <<a href="mailto:ska124@sfu.ca">ska124@sfu.ca</a>> wrote:<br>
>><br>
>> Hi<br>
>><br>
>> I want to analyse the memory dependencies which exist in a loop at an<br>
>> intra iteration as well as inter iteration (loop carried dependencies). I<br>
>> looked at the DependenceAnalysis implementation which returns a lot of the<br>
>> information I require (based on a prior AliasAnalysis pass), however I need<br>
>> to pass the Src and Dst instructions in program order.<br>
>><br>
>> I was wondering how I can collect all the memory access pairs from the<br>
>> basic blocks within the CFG of the loop body which would allow me to know<br>
>> which pairs are RAW/WAR/WAW. It seems related to the approach outlined here<br>
>> :<br>
>> <a href="https://sites.google.com/site/parallelizationforllvm/building-the-dependence-graph" target="_blank">https://sites.google.com/site/parallelizationforllvm/building-the-dependence-graph</a><br>
>><br>
>> Is there any existing implementation I can take a look at?<br>
>> It seems that the only the DependenceAnalysis::depends is only called in<br>
>> the dumpExampleDependence() function (checked using cscope). Is there no<br>
>> other module which uses this class?<br>
>><br>
>> Thanks,<br>
>> Snehasish<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
</blockquote></div><br></div>