From: Chris Lattner Date: Wed, 3 Aug 2005 17:59:45 +0000 (+0000) Subject: Fix Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll, a problem that X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6306d07aa8cf71e3c7fed7f295665f53595473eb;p=oota-llvm.git Fix Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll, a problem that occurred while bugpointing another testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22621 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 742efe61844..2bf9ae89f9f 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -805,7 +805,7 @@ static bool FoldValueComparisonIntoPredecessors(TerminatorInst *TI) { return Changed; } -/// HoistThenElseCodeToIf - Given a conditional branch that codes to BB1 and +/// HoistThenElseCodeToIf - Given a conditional branch that goes to BB1 and /// BB2, hoist any common code in the two blocks up into the branch block. The /// caller of this function guarantees that BI's block dominates BB1 and BB2. static bool HoistThenElseCodeToIf(BranchInst *BI) { @@ -818,7 +818,8 @@ static bool HoistThenElseCodeToIf(BranchInst *BI) { BasicBlock *BB2 = BI->getSuccessor(1); // The false destination Instruction *I1 = BB1->begin(), *I2 = BB2->begin(); - if (I1->getOpcode() != I2->getOpcode() || !I1->isIdenticalTo(I2)) + if (I1->getOpcode() != I2->getOpcode() || !I1->isIdenticalTo(I2) || + isa(I1)) return false; // If we get here, we can hoist at least one instruction.