diff --git a/lib/Transforms/Scalar/LoopUnroll.cpp b/lib/Transforms/Scalar/LoopUnroll.cpp index e4be2d249aa..bdf8f4d9b7c 100644 --- a/lib/Transforms/Scalar/LoopUnroll.cpp +++ b/lib/Transforms/Scalar/LoopUnroll.cpp @@ -302,17 +302,18 @@ bool LoopUnroll::runOnLoop(Loop *L, LPPassManager &LPM) { for (SmallPtrSet::iterator SI = Users.begin(), SE = Users.end(); SI != SE; ++SI) { - Value* InVal = (*SI)->getIncomingValueForBlock(LatchBlock); + PHINode *PN = *SI; + Value* InVal = PN->getIncomingValueForBlock(LatchBlock); if (isa(InVal)) InVal = LastValueMap[InVal]; - (*SI)->removeIncomingValue(LatchBlock, false); + PN->removeIncomingValue(LatchBlock, false); if (InVal) - (*SI)->addIncoming(InVal, cast(LastValueMap[LatchBlock])); - if ((*SI)->getNumIncomingValues() == 0) { + PN->addIncoming(InVal, cast(LastValueMap[LatchBlock])); + if (PN->getNumIncomingValues() == 0) { // Remove this phi node. // If anyone is using this PHI, make them use a dummy value instead... - (*SI)->replaceAllUsesWith(UndefValue::get((*SI)->getType())); - (*SI)->eraseFromParent(); + PN->replaceAllUsesWith(UndefValue::get(PN->getType())); + PN->eraseFromParent(); } } }