Now that RegistersDefinedFromSameValue handles one instruction being an
[oota-llvm.git] / lib / CodeGen / RegisterCoalescer.cpp
index 6ef098d1a143076546cfd7d874c278926ef9f03a..733312fbd0a217c0d194e97b9d59a28ce4f504ff 100644 (file)
@@ -1175,28 +1175,18 @@ static bool RegistersDefinedFromSameValue(LiveIntervals &li,
   if (!MI || CP.isPartial() || CP.isPhys())
     return false;
 
-  unsigned Dst = MI->getOperand(0).getReg();
-  if (!TargetRegisterInfo::isVirtualRegister(Dst))
+  unsigned A = CP.getDstReg();
+  if (!TargetRegisterInfo::isVirtualRegister(A))
     return false;
 
-  unsigned A = CP.getDstReg();
   unsigned B = CP.getSrcReg();
-
-  if (B == Dst)
-    std::swap(A, B);
-  assert(Dst == A);
+  if (!TargetRegisterInfo::isVirtualRegister(B))
+    return false;
 
   MachineInstr *OtherMI = li.getInstructionFromIndex(OtherVNI->def);
-
   if (!OtherMI)
     return false;
 
-  unsigned OtherDst = OtherMI->getOperand(0).getReg();
-  if (!TargetRegisterInfo::isVirtualRegister(OtherDst))
-    return false;
-
-  assert(OtherDst == B);
-
   if (MI->isImplicitDef()) {
     DupCopies.push_back(MI);
     return true;