If the coalescer commuted a def MI to allow coalescing, it can changed a previously coalesced copy into an non-identity copy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48752 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2008-03-24 23:31:21 +00:00
parent af8c563e11
commit 6f83fc8afb

View File

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