<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Hongbin,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 28, 2016, at 7:12 AM, Hongbin Zheng <<a href="mailto:etherzhhb@gmail.com" class="">etherzhhb@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi Adam,<div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Mar 23, 2016 at 1:50 PM, Adam Nemet via llvm-dev <span dir="ltr" class=""><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><span class=""><div class="">On Mar 22, 2016, at 5:13 PM, Philip Reames <<a href="mailto:listmail@philipreames.com" target="_blank" class="">listmail@philipreames.com</a>> wrote:</div><br class=""></span><div class=""><span class=""><br style="font-family:Helvetica;font-size:10px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br style="font-family:Helvetica;font-size:10px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div style="font-family:Helvetica;font-size:10px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">On 03/20/2016 05:38 AM, Aries Gunawan via llvm-dev wrote:<br class=""></div><blockquote type="cite" style="font-family:Helvetica;font-size:10px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:11pt" class=""> </span><br class=""></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><b class="">Loop Dependence Analysis Infrastructure.<span class=""> </span></b>I have looked in the source codes repo and I saw that there is a file named “DependenceAnalysis.cpp”. So, does that mean this analysis has been implemented?</div></blockquote></span><span style="font-family:Helvetica;font-size:10px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important;background-color:rgb(255,255,255)" class="">I believe major progress has been made it, but haven't been following it closely.  I'd suggest talking to committers active in this file in the recent past to determine what useful work might be left of appropriate scope. <span class=""> \</span></span><br style="font-family:Helvetica;font-size:10px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""></div></blockquote><div class=""><br class=""></div><div class="">We actually have two DA frameworks at the moment.  The file you mention is only used currently by the LoopInterchange pass that is off by default.  There is also the other framework that I’ve been working on called LoopAccessAnalysis that’s currently used by the LoopVectorizer, LoopLoadElimination, LoopDistribution and LICMLoopVersioning (the latter two are off by default).</div></div></div></blockquote><div class=""><br class=""></div><div class="">Do you think it is reasonable and feasible to provide a common interface for different loop dependence analyses like alias analysis, such that passes like LoopVectorizer/LoopLoadElimination/LoopDistribution etc. can query loop dependency information from different implementations for precision/compile-time trade off?</div><div class=""><br class=""></div></div></div></div></div></blockquote><div><br class=""></div><div>Yes, that sounds reasonable.  It will probably take some careful generalization of the DA within LAA (mostly the MemoryDepChecker class).</div><div><br class=""></div><div>Adam </div><div class=""><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">I ask because Utpal proposed to introduce dependency information calculated by Polly to LoopVectorizer. And I am interested in building a common interface for loop dependence analyses.</div></div></div></div></div></blockquote><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><div class=""> </div><div class="">Thanks</div><div class="">Hongbin</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><br class=""></div></div></blockquote></div></div></div>
</div></blockquote></div><br class=""></div></body></html>