<div dir="ltr">Hi,<div><br></div><div>There's no implementation yet of the dependence graph builder.</div><div><br></div><div>You can use DependenceAnalysis to get the info you want by expensively testing all pairs of memory references.</div>
<div><br></div><div>What you call "intra iteration" are "loop-independent" dependences, and are tested at the same time as the loop-carried dependences.</div><div><br></div><div>(In the old days, people tried to say "inter" and "intra", but it was too confusing during talks. It was much clearer to say loop independent and loop carried.)</div>
<div><br></div><div>I know of no other check-in code that uses DependenceAnalysis. Which is appropriate; it's not ready for use (that is, it's incorrect). I misunderstood how GEPs work, so it will sometimes miss existing dependences.</div>
<div><br></div><div>Preston</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Dec 27, 2013 at 8:46 AM, Snehasish Kumar <span dir="ltr"><<a href="mailto:ska124@sfu.ca" target="_blank">ska124@sfu.ca</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi <div><br></div><div>I want to analyse the memory dependencies which exist in a loop at an intra iteration as well as inter iteration (loop carried dependencies). I looked at the DependenceAnalysis implementation which returns a lot of the information I require (based on a prior AliasAnalysis pass), however I need to pass the Src and Dst instructions in program order. </div>
<div><br></div><div>I was wondering how I can collect all the memory access pairs from the basic blocks within the CFG of the loop body which would allow me to know which pairs are RAW/WAR/WAW. It seems related to the approach outlined here : <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></div>
<div><br></div><div>Is there any existing implementation I can take a look at? </div><div>It seems that the only the DependenceAnalysis::depends is only called in the dumpExampleDependence() function (checked using cscope). Is there no other module which uses this class?</div>
<div><br></div><div>Thanks,</div><div>Snehasish</div></div>
</blockquote></div><br></div>