If the coalescer commuted a def MI to allow coalescing, it can changed a previously...
authorEvan Cheng <evan.cheng@apple.com>
Mon, 24 Mar 2008 23:31:21 +0000 (23:31 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 24 Mar 2008 23:31:21 +0000 (23:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48752 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SimpleRegisterCoalescing.cpp

index 6326edab3490fd3824d7cade29efbb7cec5020b6..6f5b5236386394f0b8203bd2440d51df62f29094 100644 (file)
@@ -323,7 +323,8 @@ bool SimpleRegisterCoalescing::RemoveCopyByCommutingDef(LiveInterval &IntA,
     MachineInstr *UseMI = &*UI;
     ++UI;
     if (JoinedCopies.count(UseMI))
-      continue;
+      // It'll no longer be "joined" after the change.
+      JoinedCopies.erase(UseMI);
     unsigned UseIdx = li_->getInstructionIndex(UseMI);
     LiveInterval::iterator ULR = IntA.FindLiveRangeContaining(UseIdx);
     if (ULR->valno != AValNo)