Changes in directory llvm/lib/Transforms/Scalar:
CondPropagate.cpp updated: 1.7 -> 1.8 --- Log message: There can be more than one PHINode at the start of the block. --- Diffs of the changes: (+4 -5) CondPropagate.cpp | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) Index: llvm/lib/Transforms/Scalar/CondPropagate.cpp diff -u llvm/lib/Transforms/Scalar/CondPropagate.cpp:1.7 llvm/lib/Transforms/Scalar/CondPropagate.cpp:1.8 --- llvm/lib/Transforms/Scalar/CondPropagate.cpp:1.7 Wed Nov 1 16:26:43 2006 +++ llvm/lib/Transforms/Scalar/CondPropagate.cpp Wed Nov 1 17:04:45 2006 @@ -196,11 +196,10 @@ // Get the old block we are threading through. BasicBlock *OldSucc = FromBr->getSuccessor(0); - // OldSucc had multiple successors. If ToBB has multiple predecessors, the - // edge between them would be critical, which we already took care of. - // If ToBB has single operand PHI node than take care of it here. - if (isa<PHINode>(ToBB->begin())) { - PHINode *PN = cast<PHINode>(ToBB->begin()); + // OldSucc had multiple successors. If ToBB has multiple predecessors, then + // the edge between them would be critical, which we already took care of. + // If ToBB has single operand PHI node then take care of it here. + while (PHINode *PN = dyn_cast<PHINode>(ToBB->begin())) { assert(PN->getNumIncomingValues() == 1 && "Critical Edge Found!"); PN->replaceAllUsesWith(PN->getIncomingValue(0)); PN->eraseFromParent(); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits