TwoAddressInstructionPass::tryInstructionTransform() only potentially returns
authorCameron Zwarich <zwarich@apple.com>
Sun, 24 Feb 2013 00:27:29 +0000 (00:27 +0000)
committerCameron Zwarich <zwarich@apple.com>
Sun, 24 Feb 2013 00:27:29 +0000 (00:27 +0000)
true when shouldOnlyCommute is false, so we can remove code that checks
otherwise.

llvm-svn: 175980

llvm/lib/CodeGen/TwoAddressInstructionPass.cpp

index 34946ec..fe7a7d7 100644 (file)
@@ -1218,10 +1218,11 @@ tryInstructionTransform(MachineBasicBlock::iterator &mi,
         unsigned NewDstIdx = NewMIs[1]->findRegisterDefOperandIdx(regA);
         unsigned NewSrcIdx = NewMIs[1]->findRegisterUseOperandIdx(regB);
         MachineBasicBlock::iterator NewMI = NewMIs[1];
-        bool TransformSuccess =
+        bool TransformResult =
           tryInstructionTransform(NewMI, mi, NewSrcIdx, NewDstIdx, Dist, true);
-        if (TransformSuccess ||
-            NewMIs[1]->getOperand(NewSrcIdx).isKill()) {
+        assert(!TransformResult &&
+               "tryInstructionTransform() should return false.");
+        if (NewMIs[1]->getOperand(NewSrcIdx).isKill()) {
           // Success, or at least we made an improvement. Keep the unfolded
           // instructions and discard the original.
           if (LV) {
@@ -1272,8 +1273,6 @@ tryInstructionTransform(MachineBasicBlock::iterator &mi,
           }
 
           mi = NewMIs[1];
-          if (TransformSuccess)
-            return true;
         } else {
           // Transforming didn't eliminate the tie and didn't lead to an
           // improvement. Clean up the unfolded instructions and keep the