Be nice to CellSPU: for this target getSetCCResultType
[oota-llvm.git] / lib / CodeGen / DeadMachineInstructionElim.cpp
index 305ec0e79885d0e4ad134d52baa714c5eae963a1..4832a5ee9ae0488f37cd2e08c297f8742ae2bf61 100644 (file)
@@ -126,9 +126,12 @@ bool DeadMachineInstructionElim::runOnMachineFunction(MachineFunction &MF) {
           unsigned Reg = MO.getReg();
           if (Reg != 0 && TargetRegisterInfo::isPhysicalRegister(Reg)) {
             LivePhysRegs.reset(Reg);
-            for (const unsigned *AliasSet = TRI->getAliasSet(Reg);
-                 *AliasSet; ++AliasSet)
-              LivePhysRegs.reset(*AliasSet);
+            // Check the subreg set, not the alias set, because a def
+            // of a super-register may still be partially live after
+            // this def.
+            for (const unsigned *SubRegs = TRI->getSubRegisters(Reg);
+                 *SubRegs; ++SubRegs)
+              LivePhysRegs.reset(*SubRegs);
           }
         }
       }