Lines Matching refs:PHINode
33 void InstCombiner::PHIArgMergedDebugLoc(Instruction *Inst, PHINode &PN) { in PHIArgMergedDebugLoc()
96 Instruction *InstCombiner::FoldIntegerTypedPHI(PHINode &PN) { in FoldIntegerTypedPHI()
159 if (isa<PHINode>(Arg)) { in FoldIntegerTypedPHI()
182 PHINode *MatchingPtrPHI = nullptr; in FoldIntegerTypedPHI()
189 PHINode *PtrPHI = dyn_cast<PHINode>(II); in FoldIntegerTypedPHI()
230 PHINode *NewPtrPHI = PHINode::Create( in FoldIntegerTypedPHI()
246 assert((isa<PHINode>(IncomingVal) || in FoldIntegerTypedPHI()
266 if (isa<PHINode>(IncomingI)) in FoldIntegerTypedPHI()
284 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) { in FoldPHIArgBinOpIntoPHI()
325 PHINode *NewLHS = nullptr, *NewRHS = nullptr; in FoldPHIArgBinOpIntoPHI()
327 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(), in FoldPHIArgBinOpIntoPHI()
335 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(), in FoldPHIArgBinOpIntoPHI()
377 Instruction *InstCombiner::FoldPHIArgGEPIntoPHI(PHINode &PN) { in FoldPHIArgGEPIntoPHI()
448 SmallVector<PHINode*, 16> OperandPhis(FixedOperands.size()); in FoldPHIArgGEPIntoPHI()
454 PHINode *NewPN = PHINode::Create(FirstOp->getType(), e, in FoldPHIArgGEPIntoPHI()
472 if (PHINode *OpPhi = OperandPhis[op]) in FoldPHIArgGEPIntoPHI()
532 Instruction *InstCombiner::FoldPHIArgLoadIntoPHI(PHINode &PN) { in FoldPHIArgLoadIntoPHI()
593 PHINode *NewPN = PHINode::Create(FirstLI->getOperand(0)->getType(), in FoldPHIArgLoadIntoPHI()
650 Instruction *InstCombiner::FoldPHIArgZextsIntoPHI(PHINode &Phi) { in FoldPHIArgZextsIntoPHI()
712 PHINode *NewPhi = PHINode::Create(NarrowType, NumIncomingValues, in FoldPHIArgZextsIntoPHI()
724 Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) { in FoldPHIArgOpIntoPHI()
779 PHINode *NewPN = PHINode::Create(FirstInst->getOperand(0)->getType(), in FoldPHIArgOpIntoPHI()
832 static bool DeadPHICycle(PHINode *PN, in DeadPHICycle()
833 SmallPtrSetImpl<PHINode*> &PotentiallyDeadPHIs) { in DeadPHICycle()
845 if (PHINode *PU = dyn_cast<PHINode>(PN->user_back())) in DeadPHICycle()
854 static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal, in PHIsEqualValue()
855 SmallPtrSetImpl<PHINode*> &ValueEqualPHIs) { in PHIsEqualValue()
867 if (PHINode *OpPN = dyn_cast<PHINode>(Op)) { in PHIsEqualValue()
879 static ConstantInt *GetAnyNonZeroConstInt(PHINode &PN) { in GetAnyNonZeroConstInt()
908 PHINode *PN; // The PHI that was lowered.
912 LoweredPHIRecord(PHINode *pn, unsigned Sh, Type *Ty) in LoweredPHIRecord()
916 LoweredPHIRecord(PHINode *pn, unsigned Sh) in LoweredPHIRecord()
931 return DenseMapInfo<PHINode*>::getHashValue(Val.PN) ^ (Val.Shift>>3) ^ in getHashValue()
951 Instruction *InstCombiner::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) { in SliceUpIllegalIntegerPHI()
960 SmallVector<PHINode*, 8> PHIsToSlice; in SliceUpIllegalIntegerPHI()
961 SmallPtrSet<PHINode*, 8> PHIsInspected; in SliceUpIllegalIntegerPHI()
967 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
989 if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) { in SliceUpIllegalIntegerPHI()
1030 DenseMap<LoweredPHIRecord, PHINode*> ExtractedVals; in SliceUpIllegalIntegerPHI()
1034 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
1038 PHINode *EltPHI; in SliceUpIllegalIntegerPHI()
1045 EltPHI = PHINode::Create(Ty, PN->getNumIncomingValues(), in SliceUpIllegalIntegerPHI()
1068 if (PHINode *InPHI = dyn_cast<PHINode>(PN)) { in SliceUpIllegalIntegerPHI()
1092 if (PHINode *OldInVal = dyn_cast<PHINode>(PN->getIncomingValue(i))) in SliceUpIllegalIntegerPHI()
1122 Instruction *InstCombiner::visitPHINode(PHINode &PN) { in visitPHINode()
1149 if (PHINode *PU = dyn_cast<PHINode>(PHIUser)) { in visitPHINode()
1150 SmallPtrSet<PHINode*, 16> PotentiallyDeadPHIs; in visitPHINode()
1202 isa<PHINode>(PN.getIncomingValue(InValNo))) in visitPHINode()
1212 if (OpVal != NonPhiInVal && !isa<PHINode>(OpVal)) in visitPHINode()
1220 SmallPtrSet<PHINode*, 16> ValueEqualPHIs; in visitPHINode()
1231 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin()); in visitPHINode()