Don't assume that only Uses can be kills. Defs are marked as kills initially
[oota-llvm.git] / lib / CodeGen / SimpleRegisterCoalescing.cpp
index b714bac86a1019ff2b70e03fe564616826dc9124..4619fd7f4f015824a104a8d73a16fad3fb7e17f9 100644 (file)
@@ -955,7 +955,7 @@ MachineOperand *SimpleRegisterCoalescing::findDefOperand(MachineInstr *MI, unsig
 void SimpleRegisterCoalescing::unsetRegisterKill(MachineInstr *MI, unsigned Reg) {
   for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
     MachineOperand &MO = MI->getOperand(i);
-    if (MO.isReg() && MO.isUse() && MO.isKill() && MO.getReg() &&
+    if (MO.isReg() && MO.isKill() && MO.getReg() &&
         mri_->regsOverlap(rep(MO.getReg()), Reg))
       MO.unsetIsKill();
   }
@@ -979,7 +979,7 @@ void SimpleRegisterCoalescing::unsetRegisterKills(unsigned Start, unsigned End,
 
     for (unsigned i = 0, NumOps = MI->getNumOperands(); i != NumOps; ++i) {
       MachineOperand &MO = MI->getOperand(i);
-      if (MO.isReg() && MO.isUse() && MO.isKill() && MO.getReg() &&
+      if (MO.isReg() && MO.isKill() && MO.getReg() &&
           mri_->regsOverlap(rep(MO.getReg()), Reg)) {
         MO.unsetIsKill();
       }