<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><br>
> FWIW I suspect MemorySSAAliasSets will be too slow for use by anything for<br>
> real.<br>
<br>
</span>I was under the impression is that it should be no worse than<br>
AliasSetTracker,</blockquote><div><br></div></span><div>This is true, but AST is badly N^2 already, so realize i'm in the boat of "AST is too slow for anything to use for real".</div><div><br></div><div>I also very much do not want to see *new* passes using MemorySSAAliasSets to do anything.</div><span class="gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> and better in some cases (large blocks with very few<br>
memory operations). </blockquote><div><br></div></span><div>In the case of promoting loads alone, AST is not necessary at all.</div><div>In the case of promoting loads and stores, the way our LICM does it means it's still going to be N^2.</div><div>You will save some walking time.</div><div><br></div><div>You also end up back in a world where clients are trying to do direct aliasing queries, which sucks.</div><span class="gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> Otherwise I don't see a reason to do this.<br></blockquote><div><br></div></span><div>I'm torn.</div><div>It buys you something, but i also suspect at this level of complexity, we could have just rewritten licm and build a memoryssi or a multi-phi memoryssa or whatever it took to make handling stores fast.</div><div><br></div><div>Sigh.</div></div></div></div></blockquote><div><br></div><div>Agreed on those points; the patch description talks about the problem with promotion.</div><div>Question is, is it ok to have this functionality checked in as is until a rewrite of licm or an alternative for aliasing stores exists?</div><div><br></div><div>The hope I have is that the changes can be incremental.<br></div><div>Current patch only adds the core functionality, without enabling it by default.</div><div>Action item for this to be usable:</div><div>    - t<span style="color:rgb(0,0,0);font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">each all loop passes to preserve MemorySSA   ----> at this point we can compare performance of AST vs MemorySSA approaches.</span></div><div><span style="color:rgb(0,0,0);font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">Action items for better results:</span></div><div><span style="color:rgb(0,0,0);font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">   - incremental: e</span><span style="color:rgb(0,0,0);font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">xpose alias information for Uses in MemorySSA</span></div><div><span style="color:rgb(0,0,0);font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">   - long term: complete rewrite of promotion ----> at this point, </span>MemorySSAAliasSets can be removed (I can add a comment to warn against this being picked up by other passes)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div> </div><div><br></div><div><br></div><div><br></div></div></div></div>
<br>______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div></div>