From eff7edf12628fd83426ce18cf315b12ca6c76923 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 13 Dec 2010 05:20:28 +0000 Subject: [PATCH] simplify a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121685 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/SimplifyCFG.cpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 7c80a3dd7a4..1acf8fe05d0 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -2334,22 +2334,11 @@ bool SimplifyCFGOpt::run(BasicBlock *BB) { if (BI && BI->isConditional()) { // Get the other block. BasicBlock *OtherBB = BI->getSuccessor(BI->getSuccessor(0) == BB); - pred_iterator PI = pred_begin(OtherBB); - ++PI; - - if (PI != pred_end(OtherBB)) { - BasicBlock* OnlySucc = NULL; - for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); - SI != SE; ++SI) { - if (!OnlySucc) - OnlySucc = *SI; - else if (*SI != OnlySucc) { - OnlySucc = 0; // There are multiple distinct successors! - break; - } - } - if (OnlySucc == OtherBB) { + if (OtherBB->getSinglePredecessor() == 0) { + TerminatorInst *BBTerm = BB->getTerminator(); + if (BBTerm->getNumSuccessors() == 1 && + BBTerm->getSuccessor(0) == OtherBB) { // If BB's only successor is the other successor of the predecessor, // i.e. a triangle, see if we can hoist any code from this block up // to the "if" block. -- 2.34.1