<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 24, 2015 at 5:01 PM, Sanjoy Das <span dir="ltr"><<a href="mailto:sanjoy@playingwithpointers.com" target="_blank">sanjoy@playingwithpointers.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">================<br>
Comment at: lib/Transforms/Utils/MemorySSA.cpp:151<br>
@@ +150,3 @@<br>
+  // In both of these cases, we should arrive at the same version<br>
+  // number for all arguments. If we don't. we can't ignore this phi<br>
+  // node, because this means at least one of the arguments has a<br>
----------------<br>
Nit: should probably be `If we don't, we can't`<br>
<br>
================<br>
Comment at: lib/Transforms/Utils/MemorySSA.cpp:205<br>
@@ +204,3 @@<br>
+      MemoryAccess *Arg = P->getIncomingValue(i);<br>
+      if (Arg == DominatingArg)<br>
+        continue;<br>
----------------<br>
A very basic question:  why do we need to treat the most dominating input to the memory PHI node specially?  Why not just check if every input agrees on the clobbering instruction?<br></blockquote><div><br></div><div>We don't treat it specially, we actually do exactly what you say. </div><div>We could just pick any argument and end up with the same results. We just happen to figure it's most likely to find the version closest to the top of the function, which is most likely to be the highest (in the dominator tree) version we are trying to reach.</div><div>Otherwise,  we always check to make sure the version of all arguments agree.</div><div><br></div><div>There is one caveat here: We have to skip cyclic phi node arguments (IE arguments that lead us back to this phi node). So we can't pick one of those to be the argument to check against :)</div><div><br></div><div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It's<br>
<a href="http://reviews.llvm.org/D7864" target="_blank">http://reviews.llvm.org/D7864</a><br>
<br>
EMAIL PREFERENCES<br>
  <a href="http://reviews.llvm.org/settings/panel/emailpreferences/" target="_blank">http://reviews.llvm.org/settings/panel/emailpreferences/</a><br>
<br>
<br>
</blockquote></div><br></div></div>