Lines Matching refs:PHINode

42 void InstCombinerImpl::PHIArgMergedDebugLoc(Instruction *Inst, PHINode &PN) {  in PHIArgMergedDebugLoc()
105 Instruction *InstCombinerImpl::foldIntegerTypedPHI(PHINode &PN) { in foldIntegerTypedPHI()
169 if (isa<PHINode>(Arg)) { in foldIntegerTypedPHI()
192 PHINode *MatchingPtrPHI = nullptr; in foldIntegerTypedPHI()
194 for (PHINode &PtrPHI : BB->phis()) { in foldIntegerTypedPHI()
238 if (isa<PHINode>(Inst) && BB->getFirstInsertionPt() == BB->end()) in foldIntegerTypedPHI()
244 PHINode *NewPtrPHI = PHINode::Create( in foldIntegerTypedPHI()
260 assert((isa<PHINode>(IncomingVal) || in foldIntegerTypedPHI()
281 if (isa<PHINode>(IncomingI)) in foldIntegerTypedPHI()
300 Instruction *InstCombinerImpl::foldPHIArgIntToPtrToPHI(PHINode &PN) { in foldPHIArgIntToPtrToPHI()
324 InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(PHINode &PN) { in foldPHIArgInsertValueInstructionIntoPHI()
336 std::array<PHINode *, 2> NewOperands; in foldPHIArgInsertValueInstructionIntoPHI()
341 NewOperand = PHINode::Create( in foldPHIArgInsertValueInstructionIntoPHI()
364 InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(PHINode &PN) { in foldPHIArgExtractValueInstructionIntoPHI()
379 auto *NewAggregateOperand = PHINode::Create( in foldPHIArgExtractValueInstructionIntoPHI()
400 Instruction *InstCombinerImpl::foldPHIArgBinOpIntoPHI(PHINode &PN) { in foldPHIArgBinOpIntoPHI()
441 PHINode *NewLHS = nullptr, *NewRHS = nullptr; in foldPHIArgBinOpIntoPHI()
443 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(), in foldPHIArgBinOpIntoPHI()
451 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(), in foldPHIArgBinOpIntoPHI()
495 Instruction *InstCombinerImpl::foldPHIArgGEPIntoPHI(PHINode &PN) { in foldPHIArgGEPIntoPHI()
568 SmallVector<PHINode*, 16> OperandPhis(FixedOperands.size()); in foldPHIArgGEPIntoPHI()
575 PHINode *NewPN = in foldPHIArgGEPIntoPHI()
576 PHINode::Create(FirstOp->getType(), E, FirstOp->getName() + ".pn"); in foldPHIArgGEPIntoPHI()
593 if (PHINode *OpPhi = OperandPhis[Op]) in foldPHIArgGEPIntoPHI()
658 Instruction *InstCombinerImpl::foldPHIArgLoadIntoPHI(PHINode &PN) { in foldPHIArgLoadIntoPHI()
721 PHINode *NewPN = PHINode::Create(FirstLI->getOperand(0)->getType(), in foldPHIArgLoadIntoPHI()
781 Instruction *InstCombinerImpl::foldPHIArgZextsIntoPHI(PHINode &Phi) { in foldPHIArgZextsIntoPHI()
843 PHINode *NewPhi = PHINode::Create(NarrowType, NumIncomingValues, in foldPHIArgZextsIntoPHI()
855 Instruction *InstCombinerImpl::foldPHIArgOpIntoPHI(PHINode &PN) { in foldPHIArgOpIntoPHI()
914 PHINode *NewPN = PHINode::Create(FirstInst->getOperand(0)->getType(), in foldPHIArgOpIntoPHI()
969 static bool isDeadPHICycle(PHINode *PN, in isDeadPHICycle()
970 SmallPtrSetImpl<PHINode *> &PotentiallyDeadPHIs) { in isDeadPHICycle()
982 if (PHINode *PU = dyn_cast<PHINode>(PN->user_back())) in isDeadPHICycle()
991 static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal, in PHIsEqualValue()
992 SmallPtrSetImpl<PHINode*> &ValueEqualPHIs) { in PHIsEqualValue()
1004 if (PHINode *OpPN = dyn_cast<PHINode>(Op)) { in PHIsEqualValue()
1016 static ConstantInt *getAnyNonZeroConstInt(PHINode &PN) { in getAnyNonZeroConstInt()
1045 PHINode *PN; // The PHI that was lowered.
1049 LoweredPHIRecord(PHINode *Phi, unsigned Sh, Type *Ty) in LoweredPHIRecord()
1053 LoweredPHIRecord(PHINode *Phi, unsigned Sh) : PN(Phi), Shift(Sh), Width(0) {} in LoweredPHIRecord()
1067 return DenseMapInfo<PHINode*>::getHashValue(Val.PN) ^ (Val.Shift>>3) ^ in getHashValue()
1087 Instruction *InstCombinerImpl::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) { in SliceUpIllegalIntegerPHI()
1096 SmallVector<PHINode*, 8> PHIsToSlice; in SliceUpIllegalIntegerPHI()
1097 SmallPtrSet<PHINode*, 8> PHIsInspected; in SliceUpIllegalIntegerPHI()
1103 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
1135 if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) { in SliceUpIllegalIntegerPHI()
1181 DenseMap<LoweredPHIRecord, PHINode*> ExtractedVals; in SliceUpIllegalIntegerPHI()
1185 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
1189 PHINode *EltPHI; in SliceUpIllegalIntegerPHI()
1196 EltPHI = PHINode::Create(Ty, PN->getNumIncomingValues(), in SliceUpIllegalIntegerPHI()
1219 if (PHINode *InPHI = dyn_cast<PHINode>(PN)) { in SliceUpIllegalIntegerPHI()
1243 if (PHINode *OldInVal = dyn_cast<PHINode>(InVal)) in SliceUpIllegalIntegerPHI()
1266 for (PHINode *PHI : drop_begin(PHIsToSlice)) in SliceUpIllegalIntegerPHI()
1271 static Value *simplifyUsingControlFlow(InstCombiner &Self, PHINode &PN, in simplifyUsingControlFlow()
1372 Instruction *InstCombinerImpl::visitPHINode(PHINode &PN) { in visitPHINode()
1419 if (PHINode *PU = dyn_cast<PHINode>(PHIUser)) { in visitPHINode()
1420 SmallPtrSet<PHINode*, 16> PotentiallyDeadPHIs; in visitPHINode()
1479 isa<PHINode>(PN.getIncomingValue(InValNo))) in visitPHINode()
1489 if (OpVal != NonPhiInVal && !isa<PHINode>(OpVal)) in visitPHINode()
1497 SmallPtrSet<PHINode*, 16> ValueEqualPHIs; in visitPHINode()
1508 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin()); in visitPHINode()
1529 for (PHINode &IdenticalPN : PN.getParent()->phis()) { in visitPHINode()