diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index affae41ed2c83..8bff458f88bb9 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -2367,15 +2367,12 @@ uint32_t GVNPass::ValueTable::phiTranslateImpl(const BasicBlock *Pred, // See if we can refine the value number by looking at the PN incoming value // for the given predecessor. if (PHINode *PN = NumberingPhi[Num]) { - if (PN->getParent() != PhiBlock) - return Num; - - for (unsigned I = 0; I != PN->getNumIncomingValues(); ++I) { - if (PN->getIncomingBlock(I) != Pred) - continue; - if (uint32_t TransVal = lookup(PN->getIncomingValue(I), false)) - return TransVal; - } + if (PN->getParent() == PhiBlock) + for (unsigned I = 0; I != PN->getNumIncomingValues(); ++I) + if (PN->getIncomingBlock(I) == Pred) + if (uint32_t TransVal = lookup(PN->getIncomingValue(I), false)) + return TransVal; + return Num; } if (BasicBlock *BB = NumberingBB[Num]) {