diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/JumpThreading.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/JumpThreading.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp index d7d5034..59a8b8a 100644 --- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp +++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp @@ -3118,8 +3118,8 @@ bool JumpThreadingPass::threadGuard(BasicBlock *BB, IntrinsicInst *Guard, if (!isa<PHINode>(&*BI)) ToRemove.push_back(&*BI); - Instruction *InsertionPoint = &*BB->getFirstInsertionPt(); - assert(InsertionPoint && "Empty block?"); + BasicBlock::iterator InsertionPoint = BB->getFirstInsertionPt(); + assert(InsertionPoint != BB->end() && "Empty block?"); // Substitute with Phis & remove. for (auto *Inst : reverse(ToRemove)) { if (!Inst->use_empty()) { @@ -3129,6 +3129,7 @@ bool JumpThreadingPass::threadGuard(BasicBlock *BB, IntrinsicInst *Guard, NewPN->insertBefore(InsertionPoint); Inst->replaceAllUsesWith(NewPN); } + Inst->dropDbgValues(); Inst->eraseFromParent(); } return true; |