Fix Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll, a problem that
authorChris Lattner <sabre@nondot.org>
Wed, 3 Aug 2005 17:59:45 +0000 (17:59 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 3 Aug 2005 17:59:45 +0000 (17:59 +0000)
occurred while bugpointing another testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22621 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/SimplifyCFG.cpp

index 742efe6184420fc3ec657fa4ca59d036ca7d800a..2bf9ae89f9f964d5b0dbb67881ef857f47b915dc 100644 (file)
@@ -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<PHINode>(I1))
     return false;
 
   // If we get here, we can hoist at least one instruction.