mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-09 11:25:55 +00:00
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
This commit is contained in:
@@ -805,7 +805,7 @@ static bool FoldValueComparisonIntoPredecessors(TerminatorInst *TI) {
|
|||||||
return Changed;
|
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
|
/// 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.
|
/// caller of this function guarantees that BI's block dominates BB1 and BB2.
|
||||||
static bool HoistThenElseCodeToIf(BranchInst *BI) {
|
static bool HoistThenElseCodeToIf(BranchInst *BI) {
|
||||||
@@ -818,7 +818,8 @@ static bool HoistThenElseCodeToIf(BranchInst *BI) {
|
|||||||
BasicBlock *BB2 = BI->getSuccessor(1); // The false destination
|
BasicBlock *BB2 = BI->getSuccessor(1); // The false destination
|
||||||
|
|
||||||
Instruction *I1 = BB1->begin(), *I2 = BB2->begin();
|
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;
|
return false;
|
||||||
|
|
||||||
// If we get here, we can hoist at least one instruction.
|
// If we get here, we can hoist at least one instruction.
|
||||||
|
Reference in New Issue
Block a user