Minor cleanups
authorChris Lattner <sabre@nondot.org>
Wed, 21 Jul 2004 23:17:57 +0000 (23:17 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 21 Jul 2004 23:17:57 +0000 (23:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15091 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/TwoAddressInstructionPass.cpp

index 0805549d85c92a5a4e29f2ab3bd843637753e91f..7ca76e0f7ae0dbaeb50d3f51f45c351592a8e2a5 100644 (file)
@@ -28,8 +28,8 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "twoaddrinstr"
-#include "llvm/Function.h"
 #include "llvm/CodeGen/Passes.h"
+#include "llvm/Function.h"
 #include "llvm/CodeGen/LiveVariables.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineInstr.h"
@@ -105,13 +105,8 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
                    "two address instruction invalid");
 
             // if the two operands are the same we just remove the use
-            // and mark the def as def&use
-            if (mi->getOperand(0).getReg() ==
-                mi->getOperand(1).getReg()) {
-            }
-            else {
-                MadeChange = true;
-
+            // and mark the def as def&use, otherwise we have to insert a copy.
+            if (mi->getOperand(0).getReg() != mi->getOperand(1).getReg()) {
                 // rewrite:
                 //     a = b op c
                 // to:
@@ -128,9 +123,11 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
                 // instruction (a = b + a for example) because our
                 // transformation will not work. This should never occur
                 // because we are in SSA form.
+#ifndef NDEBUG
                 for (unsigned i = 1; i != mi->getNumOperands(); ++i)
                     assert(!mi->getOperand(i).isRegister() ||
                            mi->getOperand(i).getReg() != regA);
+#endif
 
                 const TargetRegisterClass* rc =
                     MF.getSSARegMap()->getRegClass(regA);
@@ -167,6 +164,7 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
             assert(mi->getOperand(0).isDef());
             mi->getOperand(0).setUse();
             mi->RemoveOperand(1);
+            MadeChange = true;
 
             DEBUG(std::cerr << "\t\trewrite to:\t";
                   mi->print(std::cerr, &TM));