<div dir="ltr">It's still red <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/11638">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/11638</a></div><br><div class="gmail_quote"><div dir="ltr">On Fri, May 6, 2016 at 1:09 PM Ahmed Bougacha via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ab<br>
Date: Fri May  6 15:03:03 2016<br>
New Revision: 268787<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=268787&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=268787&view=rev</a><br>
Log:<br>
[X86] Accept imp-defs of GR64 super-registers in FixupBW MOVrr.<br>
<br>
Testcase will follow shortly.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/X86/X86FixupBWInsts.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86FixupBWInsts.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FixupBWInsts.cpp?rev=268787&r1=268786&r2=268787&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FixupBWInsts.cpp?rev=268787&r1=268786&r2=268787&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/X86FixupBWInsts.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86FixupBWInsts.cpp Fri May  6 15:03:03 2016<br>
@@ -248,11 +248,17 @@ MachineInstr *FixupBWInstPass::tryReplac<br>
       BuildMI(*MF, MI->getDebugLoc(), TII->get(X86::MOV32rr), NewDestReg)<br>
           .addReg(NewSrcReg);<br>
<br>
-#ifndef NDEBUG<br>
-  // Make sure we didn't drop any other implicit operand.<br>
-  for (auto &Op : MI->implicit_operands())<br>
-    assert(Op.getReg() == NewDestReg && "Copy imp-defs unrelated reg?");<br>
-#endif<br>
+  // Make sure we don't drop implicit operands.<br>
+  // We used to imp-def the super, but we don't need to anymore, as we turned<br>
+  // it into an explicit def. However, we might still need to imp-def the GR64<br>
+  // super-register.<br>
+  for (auto &Op : MI->implicit_operands()) {<br>
+    if (Op.getReg() == NewDestReg && Op.isDef())<br>
+      continue;<br>
+    assert((!Op.isDef() || TRI->isSubRegister(Op.getReg(), NewDestReg)) &&<br>
+           "Copy imp-defs unrelated reg?");<br>
+    MIB.addOperand(Op);<br>
+  }<br>
<br>
   return MIB;<br>
 }<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">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/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>