• Home
  • Raw
  • Download

Lines Matching refs:PN

376 bool llvm::RecursivelyDeleteDeadPHINode(PHINode *PN,  in RecursivelyDeleteDeadPHINode()  argument
379 for (Instruction *I = PN; areAllUsesEqual(I) && !I->mayHaveSideEffects(); in RecursivelyDeleteDeadPHINode()
460 while (PHINode *PN = dyn_cast<PHINode>(PhiIt)) { in RemovePredecessorAndSimplify() local
464 if (!recursivelySimplifyInstruction(PN, TD)) in RemovePredecessorAndSimplify()
482 while (PHINode *PN = dyn_cast<PHINode>(DestBB->begin())) { in MergeBasicBlockIntoOnlyPred() local
483 Value *NewVal = PN->getIncomingValue(0); in MergeBasicBlockIntoOnlyPred()
485 if (NewVal == PN) NewVal = UndefValue::get(PN->getType()); in MergeBasicBlockIntoOnlyPred()
486 PN->replaceAllUsesWith(NewVal); in MergeBasicBlockIntoOnlyPred()
487 PN->eraseFromParent(); in MergeBasicBlockIntoOnlyPred()
555 PHINode *PN = cast<PHINode>(I); in CanPropagatePredecessorsForPHIs() local
560 PHINode *BBPN = dyn_cast<PHINode>(PN->getIncomingValueForBlock(BB)); in CanPropagatePredecessorsForPHIs()
562 for (unsigned PI = 0, PE = PN->getNumIncomingValues(); PI != PE; ++PI) { in CanPropagatePredecessorsForPHIs()
563 BasicBlock *IBB = PN->getIncomingBlock(PI); in CanPropagatePredecessorsForPHIs()
566 PN->getIncomingValue(PI))) { in CanPropagatePredecessorsForPHIs()
567 DEBUG(dbgs() << "Can't fold, phi node " << PN->getName() << " in " in CanPropagatePredecessorsForPHIs()
575 Value* Val = PN->getIncomingValueForBlock(BB); in CanPropagatePredecessorsForPHIs()
576 for (unsigned PI = 0, PE = PN->getNumIncomingValues(); PI != PE; ++PI) { in CanPropagatePredecessorsForPHIs()
580 BasicBlock *IBB = PN->getIncomingBlock(PI); in CanPropagatePredecessorsForPHIs()
582 !CanMergeValues(Val, PN->getIncomingValue(PI))) { in CanPropagatePredecessorsForPHIs()
583 DEBUG(dbgs() << "Can't fold, phi node " << PN->getName() << " in " in CanPropagatePredecessorsForPHIs()
635 static void gatherIncomingValuesToPhi(PHINode *PN, in gatherIncomingValuesToPhi() argument
637 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { in gatherIncomingValuesToPhi()
638 BasicBlock *BB = PN->getIncomingBlock(i); in gatherIncomingValuesToPhi()
639 Value *V = PN->getIncomingValue(i); in gatherIncomingValuesToPhi()
651 static void replaceUndefValuesInPhi(PHINode *PN, in replaceUndefValuesInPhi() argument
653 for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { in replaceUndefValuesInPhi()
654 Value *V = PN->getIncomingValue(i); in replaceUndefValuesInPhi()
658 BasicBlock *BB = PN->getIncomingBlock(i); in replaceUndefValuesInPhi()
662 PN->setIncomingValue(i, It->second); in replaceUndefValuesInPhi()
675 PHINode *PN) { in redirectValuesFromPredecessorsToPhi() argument
676 Value *OldVal = PN->removeIncomingValue(BB, false); in redirectValuesFromPredecessorsToPhi()
690 gatherIncomingValuesToPhi(PN, IncomingValues); in redirectValuesFromPredecessorsToPhi()
709 PN->addIncoming(Selected, PredBB); in redirectValuesFromPredecessorsToPhi()
721 PN->addIncoming(Selected, PredBB); in redirectValuesFromPredecessorsToPhi()
725 replaceUndefValuesInPhi(PN, IncomingValues); in redirectValuesFromPredecessorsToPhi()
762 if (PHINode* PN = dyn_cast<PHINode>(*UI)) { in TryToSimplifyUncondBranchFromEmptyBlock() local
763 if (PN->getIncomingBlock(UI) != BB) in TryToSimplifyUncondBranchFromEmptyBlock()
783 PHINode *PN = cast<PHINode>(I); in TryToSimplifyUncondBranchFromEmptyBlock() local
785 redirectValuesFromPredecessorsToPhi(BB, BBPreds, PN); in TryToSimplifyUncondBranchFromEmptyBlock()
797 while (PHINode *PN = dyn_cast<PHINode>(&BB->front())) { in TryToSimplifyUncondBranchFromEmptyBlock() local
799 assert(PN->use_empty() && "There shouldn't be any uses here!"); in TryToSimplifyUncondBranchFromEmptyBlock()
800 PN->eraseFromParent(); in TryToSimplifyUncondBranchFromEmptyBlock()
833 PHINode *PN = dyn_cast<PHINode>(I++); ) { in EliminateDuplicatePHINodes()
840 for (User::op_iterator I = PN->op_begin(), E = PN->op_end(); I != E; ++I) { in EliminateDuplicatePHINodes()
844 for (PHINode::block_iterator I = PN->block_begin(), E = PN->block_end(); in EliminateDuplicatePHINodes()
853 HashMap.insert(std::make_pair(Hash, PN)); in EliminateDuplicatePHINodes()
857 if (OtherPN->isIdenticalTo(PN)) { in EliminateDuplicatePHINodes()
859 PN->replaceAllUsesWith(OtherPN); in EliminateDuplicatePHINodes()
860 PN->eraseFromParent(); in EliminateDuplicatePHINodes()
869 Pair.first->second = PN; in EliminateDuplicatePHINodes()
870 CollisionMap[PN] = Old; in EliminateDuplicatePHINodes()