Lines Matching refs:PHINode

42 void InstCombinerImpl::PHIArgMergedDebugLoc(Instruction *Inst, PHINode &PN) {  in PHIArgMergedDebugLoc()
105 Instruction *InstCombinerImpl::foldIntegerTypedPHI(PHINode &PN) { in foldIntegerTypedPHI()
168 if (isa<PHINode>(Arg)) { in foldIntegerTypedPHI()
191 PHINode *MatchingPtrPHI = nullptr; in foldIntegerTypedPHI()
195 PHINode *PtrPHI = dyn_cast<PHINode>(II); in foldIntegerTypedPHI()
242 if (isa<PHINode>(Inst) && BB->getFirstInsertionPt() == BB->end()) in foldIntegerTypedPHI()
248 PHINode *NewPtrPHI = PHINode::Create( in foldIntegerTypedPHI()
264 assert((isa<PHINode>(IncomingVal) || in foldIntegerTypedPHI()
285 if (isa<PHINode>(IncomingI)) in foldIntegerTypedPHI()
305 InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(PHINode &PN) { in foldPHIArgInsertValueInstructionIntoPHI()
317 std::array<PHINode *, 2> NewOperands; in foldPHIArgInsertValueInstructionIntoPHI()
322 NewOperand = PHINode::Create( in foldPHIArgInsertValueInstructionIntoPHI()
345 InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(PHINode &PN) { in foldPHIArgExtractValueInstructionIntoPHI()
360 auto *NewAggregateOperand = PHINode::Create( in foldPHIArgExtractValueInstructionIntoPHI()
381 Instruction *InstCombinerImpl::foldPHIArgBinOpIntoPHI(PHINode &PN) { in foldPHIArgBinOpIntoPHI()
422 PHINode *NewLHS = nullptr, *NewRHS = nullptr; in foldPHIArgBinOpIntoPHI()
424 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(), in foldPHIArgBinOpIntoPHI()
432 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(), in foldPHIArgBinOpIntoPHI()
474 Instruction *InstCombinerImpl::foldPHIArgGEPIntoPHI(PHINode &PN) { in foldPHIArgGEPIntoPHI()
546 SmallVector<PHINode*, 16> OperandPhis(FixedOperands.size()); in foldPHIArgGEPIntoPHI()
552 PHINode *NewPN = PHINode::Create(FirstOp->getType(), e, in foldPHIArgGEPIntoPHI()
570 if (PHINode *OpPhi = OperandPhis[op]) in foldPHIArgGEPIntoPHI()
635 Instruction *InstCombinerImpl::foldPHIArgLoadIntoPHI(PHINode &PN) { in foldPHIArgLoadIntoPHI()
691 PHINode *NewPN = PHINode::Create(FirstLI->getOperand(0)->getType(), in foldPHIArgLoadIntoPHI()
749 Instruction *InstCombinerImpl::foldPHIArgZextsIntoPHI(PHINode &Phi) { in foldPHIArgZextsIntoPHI()
811 PHINode *NewPhi = PHINode::Create(NarrowType, NumIncomingValues, in foldPHIArgZextsIntoPHI()
823 Instruction *InstCombinerImpl::foldPHIArgOpIntoPHI(PHINode &PN) { in foldPHIArgOpIntoPHI()
882 PHINode *NewPN = PHINode::Create(FirstInst->getOperand(0)->getType(), in foldPHIArgOpIntoPHI()
935 static bool DeadPHICycle(PHINode *PN, in DeadPHICycle()
936 SmallPtrSetImpl<PHINode*> &PotentiallyDeadPHIs) { in DeadPHICycle()
948 if (PHINode *PU = dyn_cast<PHINode>(PN->user_back())) in DeadPHICycle()
957 static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal, in PHIsEqualValue()
958 SmallPtrSetImpl<PHINode*> &ValueEqualPHIs) { in PHIsEqualValue()
970 if (PHINode *OpPN = dyn_cast<PHINode>(Op)) { in PHIsEqualValue()
982 static ConstantInt *GetAnyNonZeroConstInt(PHINode &PN) { in GetAnyNonZeroConstInt()
1011 PHINode *PN; // The PHI that was lowered.
1015 LoweredPHIRecord(PHINode *pn, unsigned Sh, Type *Ty) in LoweredPHIRecord()
1019 LoweredPHIRecord(PHINode *pn, unsigned Sh) in LoweredPHIRecord()
1034 return DenseMapInfo<PHINode*>::getHashValue(Val.PN) ^ (Val.Shift>>3) ^ in getHashValue()
1054 Instruction *InstCombinerImpl::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) { in SliceUpIllegalIntegerPHI()
1063 SmallVector<PHINode*, 8> PHIsToSlice; in SliceUpIllegalIntegerPHI()
1064 SmallPtrSet<PHINode*, 8> PHIsInspected; in SliceUpIllegalIntegerPHI()
1070 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
1092 if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) { in SliceUpIllegalIntegerPHI()
1138 DenseMap<LoweredPHIRecord, PHINode*> ExtractedVals; in SliceUpIllegalIntegerPHI()
1142 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
1146 PHINode *EltPHI; in SliceUpIllegalIntegerPHI()
1153 EltPHI = PHINode::Create(Ty, PN->getNumIncomingValues(), in SliceUpIllegalIntegerPHI()
1176 if (PHINode *InPHI = dyn_cast<PHINode>(PN)) { in SliceUpIllegalIntegerPHI()
1200 if (PHINode *OldInVal = dyn_cast<PHINode>(PN->getIncomingValue(i))) in SliceUpIllegalIntegerPHI()
1228 static Value *SimplifyUsingControlFlow(InstCombiner &Self, PHINode &PN, in SimplifyUsingControlFlow()
1302 Instruction *InstCombinerImpl::visitPHINode(PHINode &PN) { in visitPHINode()
1346 if (PHINode *PU = dyn_cast<PHINode>(PHIUser)) { in visitPHINode()
1347 SmallPtrSet<PHINode*, 16> PotentiallyDeadPHIs; in visitPHINode()
1406 isa<PHINode>(PN.getIncomingValue(InValNo))) in visitPHINode()
1416 if (OpVal != NonPhiInVal && !isa<PHINode>(OpVal)) in visitPHINode()
1424 SmallPtrSet<PHINode*, 16> ValueEqualPHIs; in visitPHINode()
1435 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin()); in visitPHINode()
1456 for (PHINode &IdenticalPN : PN.getParent()->phis()) { in visitPHINode()