Lines Matching refs:PHI
4038 PHINode *PHI = nullptr; in ensureValueAvailableInSuccessor() local
4043 PHI = cast<PHINode>(I); in ensureValueAvailableInSuccessor()
4050 if (PHI->getIncomingValueForBlock(OtherPredBB) == AlternativeV) in ensureValueAvailableInSuccessor()
4052 PHI = nullptr; in ensureValueAvailableInSuccessor()
4054 if (PHI) in ensureValueAvailableInSuccessor()
4055 return PHI; in ensureValueAvailableInSuccessor()
4062 PHI = PHINode::Create(V->getType(), 2, "simplifycfg.merge"); in ensureValueAvailableInSuccessor()
4063 PHI->insertBefore(Succ->begin()); in ensureValueAvailableInSuccessor()
4064 PHI->addIncoming(V, BB); in ensureValueAvailableInSuccessor()
4067 PHI->addIncoming( in ensureValueAvailableInSuccessor()
4069 return PHI; in ensureValueAvailableInSuccessor()
5763 for (PHINode &PHI : Succ->phis()) { in FindPHIForConditionForwarding()
5764 int Idx = PHI.getBasicBlockIndex(BB); in FindPHIForConditionForwarding()
5767 Value *InValue = PHI.getIncomingValue(Idx); in FindPHIForConditionForwarding()
5772 return &PHI; in FindPHIForConditionForwarding()
5957 for (PHINode &PHI : (*CommonDest)->phis()) { in getCaseResults()
5958 int Idx = PHI.getBasicBlockIndex(Pred); in getCaseResults()
5963 LookupConstant(PHI.getIncomingValue(Idx), ConstantPool); in getCaseResults()
5971 Res.push_back(std::make_pair(&PHI, ConstVal)); in getCaseResults()
5997 static bool initializeUniqueCases(SwitchInst *SI, PHINode *&PHI, in initializeUniqueCases() argument
6030 if (!PHI) in initializeUniqueCases()
6031 PHI = Results[0].first; in initializeUniqueCases()
6032 else if (PHI != Results[0].first) in initializeUniqueCases()
6130 static void removeSwitchAfterSelectFold(SwitchInst *SI, PHINode *PHI, in removeSwitchAfterSelectFold() argument
6137 BasicBlock *DestBB = PHI->getParent(); in removeSwitchAfterSelectFold()
6145 PHI->removeIncomingValueIf( in removeSwitchAfterSelectFold()
6146 [&](unsigned Idx) { return PHI->getIncomingBlock(Idx) == SelectBB; }); in removeSwitchAfterSelectFold()
6147 PHI->addIncoming(SelectValue, SelectBB); in removeSwitchAfterSelectFold()
6171 PHINode *PHI = nullptr; in trySwitchToSelect() local
6176 if (!initializeUniqueCases(SI, PHI, CommonDest, UniqueResults, DefaultResult, in trySwitchToSelect()
6180 assert(PHI != nullptr && "PHI for value select not found"); in trySwitchToSelect()
6187 removeSwitchAfterSelectFold(SI, PHI, SelectValue, Builder, DTU); in trySwitchToSelect()
6700 PHINode *PHI = I.first; in SwitchToLookupTable() local
6702 if (!ResultLists.count(PHI)) in SwitchToLookupTable()
6703 PHIs.push_back(PHI); in SwitchToLookupTable()
6704 ResultLists[PHI].push_back(std::make_pair(CaseVal, Value)); in SwitchToLookupTable()
6709 for (PHINode *PHI : PHIs) { in SwitchToLookupTable()
6710 ResultTypes[PHI] = ResultLists[PHI][0].second->getType(); in SwitchToLookupTable()
6723 PHINode *PHI = I.first; in SwitchToLookupTable() local
6725 DefaultResults[PHI] = Result; in SwitchToLookupTable()
6897 for (PHINode *PHI : PHIs) { in SwitchToLookupTable()
6898 const ResultListTy &ResultList = ResultLists[PHI]; in SwitchToLookupTable()
6902 AllHolesAreUndefined ? ResultLists[PHI][0].second : DefaultResults[PHI]; in SwitchToLookupTable()
6912 BasicBlock *PhiBlock = PHI->getParent(); in SwitchToLookupTable()
6914 for (auto *User : PHI->users()) { in SwitchToLookupTable()
6919 PHI->addIncoming(Result, LookupBB); in SwitchToLookupTable()
7711 for (PHINode &PHI : BB->phis()) in removeUndefIntroducingPredecessor()
7712 for (unsigned i = 0, e = PHI.getNumIncomingValues(); i != e; ++i) in removeUndefIntroducingPredecessor()
7713 if (passingValueIsAlwaysUndefined(PHI.getIncomingValue(i), &PHI)) { in removeUndefIntroducingPredecessor()
7714 BasicBlock *Predecessor = PHI.getIncomingBlock(i); in removeUndefIntroducingPredecessor()