From 35e92c7bea7836cbac1939c5caa9fb8d40f414b5 Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Sat, 8 Mar 2008 07:48:41 +0000 Subject: Not all users of a BB are Instructions any more. llvm-svn: 48047 --- llvm/lib/Transforms/Scalar/SCCP.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'llvm/lib') diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp index 561cdb1fbb4..b1c923c2bdc 100644 --- a/llvm/lib/Transforms/Scalar/SCCP.cpp +++ b/llvm/lib/Transforms/Scalar/SCCP.cpp @@ -45,7 +45,7 @@ using namespace llvm; STATISTIC(NumInstRemoved, "Number of instructions removed"); STATISTIC(NumDeadBlocks , "Number of basic blocks unreachable"); -STATISTIC(IPNumInstRemoved, "Number ofinstructions removed by IPSCCP"); +STATISTIC(IPNumInstRemoved, "Number of instructions removed by IPSCCP"); STATISTIC(IPNumDeadBlocks , "Number of basic blocks unreachable by IPSCCP"); STATISTIC(IPNumArgsElimed ,"Number of arguments constant propagated by IPSCCP"); STATISTIC(IPNumGlobalConst, "Number of globals found to be constant by IPSCCP"); @@ -1637,6 +1637,11 @@ bool IPSCCP::runOnModule(Module &M) { // If there are any PHI nodes in this successor, drop entries for BB now. BasicBlock *DeadBB = BlocksToErase[i]; while (!DeadBB->use_empty()) { + if (BasicBlock *PredBB = dyn_cast(DeadBB->use_back())) { + PredBB->setUnwindDest(NULL); + continue; + } + Instruction *I = cast(DeadBB->use_back()); bool Folded = ConstantFoldTerminator(I->getParent()); if (!Folded) { -- cgit v1.2.3