From 954f66a8cd43d552801f60f9e113f5c704487ee7 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 18 Nov 2004 21:41:39 +0000 Subject: [PATCH] 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 --- lib/Transforms/Scalar/InstructionCombining.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index f336722dd73..b279d9201ae 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -182,7 +182,7 @@ namespace { assert(I.use_empty() && "Cannot erase instruction that is used!"); AddUsesToWorkList(I); removeFromWorkList(&I); - I.getParent()->getInstList().erase(&I); + I.eraseFromParent(); return 0; // Don't do anything with FI } @@ -3217,6 +3217,16 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) { } if (Changed) return &CI; + } else if (DbgStopPointInst *SPI = dyn_cast(&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(SPI->getChain())) + if (SPI->getLineNo() == PrevSPI->getLineNo() && + SPI->getColNo() == PrevSPI->getColNo()) { + SPI->replaceAllUsesWith(PrevSPI); + return EraseInstFromFunction(CI); + } } return visitCallSite(&CI);