Delete stoppoints that occur for the same source line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17970 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-11-18 21:41:39 +00:00
parent 1085548d35
commit 954f66a8cd

View File

@ -182,7 +182,7 @@ namespace {
assert(I.use_empty() && "Cannot erase instruction that is used!"); assert(I.use_empty() && "Cannot erase instruction that is used!");
AddUsesToWorkList(I); AddUsesToWorkList(I);
removeFromWorkList(&I); removeFromWorkList(&I);
I.getParent()->getInstList().erase(&I); I.eraseFromParent();
return 0; // Don't do anything with FI return 0; // Don't do anything with FI
} }
@ -3217,6 +3217,16 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
} }
if (Changed) return &CI; if (Changed) return &CI;
} else if (DbgStopPointInst *SPI = dyn_cast<DbgStopPointInst>(&CI)) {
// If this stoppoint is at the same source location as the previous
// stoppoint in the chain, it is not needed.
if (DbgStopPointInst *PrevSPI =
dyn_cast<DbgStopPointInst>(SPI->getChain()))
if (SPI->getLineNo() == PrevSPI->getLineNo() &&
SPI->getColNo() == PrevSPI->getColNo()) {
SPI->replaceAllUsesWith(PrevSPI);
return EraseInstFromFunction(CI);
}
} }
return visitCallSite(&CI); return visitCallSite(&CI);