Skip to content

Commit

Permalink
[JumpThread] No need to erase BB from LoopHeaders. NFC.
Browse files Browse the repository at this point in the history
Summary: No need to try to ease BB from LoopHeaders as we already know that BB is not in LoopHeaders.

Reviewers: hsung, majnemer, mcrosier, haicheng, rengolin

Reviewed By: rengolin

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D29232

llvm-svn: 293802
  • Loading branch information
Jun Bum Lim committed Feb 1, 2017
1 parent a76357d commit 423406f
Showing 1 changed file with 1 addition and 14 deletions.
15 changes: 1 addition & 14 deletions llvm/lib/Transforms/Scalar/JumpThreading.cpp
Expand Up @@ -222,26 +222,13 @@ bool JumpThreadingPass::runImpl(Function &F, TargetLibraryInfo *TLI_,
BB != &BB->getParent()->getEntryBlock() &&
// If the terminator is the only non-phi instruction, try to nuke it.
BB->getFirstNonPHIOrDbg()->isTerminator() && !LoopHeaders.count(BB)) {
// Since TryToSimplifyUncondBranchFromEmptyBlock may delete the
// block, we have to make sure it isn't in the LoopHeaders set. We
// reinsert afterward if needed.
bool ErasedFromLoopHeaders = LoopHeaders.erase(BB);
BasicBlock *Succ = BI->getSuccessor(0);

// FIXME: It is always conservatively correct to drop the info
// for a block even if it doesn't get erased. This isn't totally
// awesome, but it allows us to use AssertingVH to prevent nasty
// dangling pointer issues within LazyValueInfo.
LVI->eraseBlock(BB);
if (TryToSimplifyUncondBranchFromEmptyBlock(BB)) {
if (TryToSimplifyUncondBranchFromEmptyBlock(BB))
Changed = true;
// If we deleted BB and BB was the header of a loop, then the
// successor is now the header of the loop.
BB = Succ;
}

if (ErasedFromLoopHeaders)
LoopHeaders.insert(BB);
}
}
EverChanged |= Changed;
Expand Down

0 comments on commit 423406f

Please sign in to comment.