simplify code and reduce indentation

llvm-svn: 121670
This commit is contained in:
Chris Lattner 2010-12-13 02:38:13 +00:00
parent 7c8e6047d6
commit 73a58627c3
1 changed files with 29 additions and 31 deletions

View File

@ -168,18 +168,18 @@ bool JumpThreading::runOnFunction(Function &F) {
LVI->eraseBlock(BB);
DeleteDeadBlock(BB);
Changed = true;
} else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {
continue;
}
BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator());
// Can't thread an unconditional jump, but if the block is "almost
// empty", we can replace uses of it with uses of the successor and make
// this dead.
if (BI->isUnconditional() &&
BB != &BB->getParent()->getEntryBlock()) {
BasicBlock::iterator BBI = BB->getFirstNonPHI();
// Ignore dbg intrinsics.
while (isa<DbgInfoIntrinsic>(BBI))
++BBI;
if (BI && BI->isUnconditional() &&
BB != &BB->getParent()->getEntryBlock() &&
// If the terminator is the only non-phi instruction, try to nuke it.
if (BBI->isTerminator()) {
BB->getFirstNonPHIOrDbg()->isTerminator()) {
// Since TryToSimplifyUncondBranchFromEmptyBlock may delete the
// block, we have to make sure it isn't in the LoopHeaders set. We
// reinsert afterward if needed.
@ -202,8 +202,6 @@ bool JumpThreading::runOnFunction(Function &F) {
LoopHeaders.insert(BB);
}
}
}
}
EverChanged |= Changed;
} while (Changed);