<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 5, 2009, at 5:30 PM, David Greene wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Monday 02 February 2009 23:55, Evan Cheng wrote:<br><br><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Think about what will happen the 2nd iteration.  %v1177 will have<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the value of<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">%v1645 which is wrong.  This is because %v1176 in bb74 will be<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">replaced with<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">%v1177.  That's incorrect.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Ok, right. The trick to fixing is to make sure the valno of the def of<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">v1177 hasPHIKill to true and make sure the coalescer checks it.<br></blockquote></blockquote><br>What does hasPHIKill mean, what are the consequences of using it and how do I <br>know when I can set it?  I assume this would have been set by someone.  Or is <br>that part of the bug?</div></blockquote><div><br></div>hasPHIKill just means it has a phi use so it's not possible to determine where the value is killed. Look for LiveIntervalAnalysis.cpp.</div><div><br><blockquote type="cite"><div><br><br><blockquote type="cite">Actually liveintervals can construct a v1177 live range starting from  <br></blockquote><blockquote type="cite">the beginning mbb with a val# of unknown def.<br></blockquote><br>What's "the beginning mbb?"  The start of the bb containing the phi (bb74 in <br>this case)?  Again, how would I instruct liveintervals to do this?  The <br>IMPLICIT_DEF is already gone by that point.</div></blockquote><div><br></div><span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 11px; ">%v1645 =  ...<br>loop:<br>%v1176 = %v1645<br>...<br>= %v1176<br>= %v1177<br>%v1645 = op ...<br>%v1177 = %v1176<br>jmp loop</span></div><div><font class="Apple-style-span" face="-webkit-monospace" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></div><div><font class="Apple-style-span" face="-webkit-monospace" size="3"><span class="Apple-style-span" style="font-size: 11px;">When the live interval for v1177 is created, the code should recognize v1177 is live-in to the MBB. So even though it's not clear where it's defined, it's still clear it's live-in to the MBB.</span></font></div><div><font class="Apple-style-span" face="-webkit-monospace" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></div><div><font class="Apple-style-span" face="-webkit-monospace" size="3"><span class="Apple-style-span" style="font-size: 11px;">Evan</span></font></div><div><font class="Apple-style-span" face="-webkit-monospace" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font><blockquote type="cite"><div><br><br>                                                   -Dave<br><br>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></blockquote></div><br></body></html>