I've got a new version of the dependence-analysis code ready to go (includes another MIV test based on Banerjee's inequalities).<div><br><div>Before I release it, I'd like to incorporate any outstanding comments or changes from my last version. If anyone is sitting on a partial review, please let me know and I can hold off until you're ready.<div>
<br></div><div>Thank,</div><div>Preston</div><div><br><div class="gmail_quote">On Mon, Sep 24, 2012 at 1:32 PM, Preston Briggs <span dir="ltr"><<a href="mailto:preston.briggs@gmail.com" target="_blank">preston.briggs@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>This is an updated version of the dependence-analysis patch, reflecting feedback from the walkthrough at Qualcomm a couple of weeks ago. There's more documentation, better handling of SCEVs, many corrections, better handling of symbolics by the GCD test, more special cases caught by the WeakCrossing test, more test cases, etc.</div>



<div><br></div><div><div class="im"><div><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">It's a fairly complete implementation of the paper</span></div></div><div><div class="im"><br style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">


<blockquote style="color:rgb(34,34,34);font-size:13px;margin:0px 0px 0px 40px;font-family:arial,sans-serif;padding:0px;border:none">Practical Dependence Testing<br>Gina Goff, Ken Kennedy, and Chau-Wen Tseng<br>PLDI 1991</blockquote>


<br style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif"></div><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">It lacks the fancier MIV tests (it has only the RDIV test, the Delta test, and the GCD test) and cannot yet propagate constraints between coupled RDIV subscripts (discussed in Section 5.3.2 of the paper). I expect to add these in the future.</span><div class="im">
<br style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">

<br style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif"><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">It's organized as a FunctionPass with a single entry point that supports testing for dependence between two instructions in a function. If there's no dependence, it returns null. If there's a dependence, it returns a pointer to a Dependence which can be queried about details (what kind of dependence, is it loop independent, direction and distance vector entries, etc). I haven't included every imaginable feature, but there's a good selection that should be adequate for supporting many loop transformations. Of course, it can be extended as necessary.</span><br style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">


<br style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif"><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">Included in the patch file are many test cases, commented with C code showing the loops and array references.</span></div>
</div>

<div><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif"><br></span></div></div><div>Thanks,</div><div><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">Preston</span></div>


<div><span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif"><br>
</span></div>
</blockquote></div><br></div></div></div>