Immediately erase trivially useless copies.

There is no need for these instructions to stick around since they are
known to be not dead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157102 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen 2012-05-19 05:25:53 +00:00
parent bd6f44a3a2
commit 3662f0d492

View File

@ -1070,15 +1070,17 @@ bool RegisterCoalescer::joinCopy(MachineInstr *CopyMI, bool &Again) {
// If they are already joined we continue. // If they are already joined we continue.
if (CP.getSrcReg() == CP.getDstReg()) { if (CP.getSrcReg() == CP.getDstReg()) {
markAsJoined(CopyMI);
DEBUG(dbgs() << "\tCopy already coalesced.\n"); DEBUG(dbgs() << "\tCopy already coalesced.\n");
LIS->RemoveMachineInstrFromMaps(CopyMI);
CopyMI->eraseFromParent();
return false; // Not coalescable. return false; // Not coalescable.
} }
// Eliminate undefs. // Eliminate undefs.
if (!CP.isPhys() && eliminateUndefCopy(CopyMI, CP)) { if (!CP.isPhys() && eliminateUndefCopy(CopyMI, CP)) {
markAsJoined(CopyMI);
DEBUG(dbgs() << "\tEliminated copy of <undef> value.\n"); DEBUG(dbgs() << "\tEliminated copy of <undef> value.\n");
LIS->RemoveMachineInstrFromMaps(CopyMI);
CopyMI->eraseFromParent();
return false; // Not coalescable. return false; // Not coalescable.
} }