commuteInstruction() does not always create a new MI!
authorEvan Cheng <evan.cheng@apple.com>
Wed, 31 May 2006 18:03:39 +0000 (18:03 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 31 May 2006 18:03:39 +0000 (18:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28592 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/ScheduleDAG.cpp

index d2820d9632392b8b38ba99bc1c2d546b39065e13..1d154017f51eb592b04ebb97879d3f553c11a6f7 100644 (file)
@@ -402,8 +402,10 @@ void ScheduleDAG::EmitNode(SDNode *Node,
         DEBUG(std::cerr << "Sched: COMMUTING FAILED!\n");
       else {
         DEBUG(std::cerr << "Sched: COMMUTED TO: " << *NewMI);
-        delete MI;
-        MI = NewMI;
+        if (MI != NewMI) {
+          delete MI;
+          MI = NewMI;
+        }
       }
     }