Check that pointers are removed from maps before calling delete on the pointers,

for tidiness' sake.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174988 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2013-02-12 18:44:43 +00:00
parent 67cd669f7b
commit c73b96a99f

View File

@ -2371,8 +2371,8 @@ bool GVN::processBlock(BasicBlock *BB) {
E = InstrsToErase.end(); I != E; ++I) { E = InstrsToErase.end(); I != E; ++I) {
DEBUG(dbgs() << "GVN removed: " << **I << '\n'); DEBUG(dbgs() << "GVN removed: " << **I << '\n');
if (MD) MD->removeInstruction(*I); if (MD) MD->removeInstruction(*I);
(*I)->eraseFromParent();
DEBUG(verifyRemoved(*I)); DEBUG(verifyRemoved(*I));
(*I)->eraseFromParent();
} }
InstrsToErase.clear(); InstrsToErase.clear();
@ -2504,8 +2504,8 @@ bool GVN::performPRE(Function &F) {
// the PRE predecessor. This is typically because of loads which // the PRE predecessor. This is typically because of loads which
// are not value numbered precisely. // are not value numbered precisely.
if (!success) { if (!success) {
delete PREInstr;
DEBUG(verifyRemoved(PREInstr)); DEBUG(verifyRemoved(PREInstr));
delete PREInstr;
continue; continue;
} }
@ -2551,8 +2551,8 @@ bool GVN::performPRE(Function &F) {
DEBUG(dbgs() << "GVN PRE removed: " << *CurInst << '\n'); DEBUG(dbgs() << "GVN PRE removed: " << *CurInst << '\n');
if (MD) MD->removeInstruction(CurInst); if (MD) MD->removeInstruction(CurInst);
CurInst->eraseFromParent();
DEBUG(verifyRemoved(CurInst)); DEBUG(verifyRemoved(CurInst));
CurInst->eraseFromParent();
Changed = true; Changed = true;
} }
} }