Lines Matching refs:PHINode
28 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) { in FoldPHIArgBinOpIntoPHI()
69 PHINode *NewLHS = nullptr, *NewRHS = nullptr; in FoldPHIArgBinOpIntoPHI()
71 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(), in FoldPHIArgBinOpIntoPHI()
79 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(), in FoldPHIArgBinOpIntoPHI()
121 Instruction *InstCombiner::FoldPHIArgGEPIntoPHI(PHINode &PN) { in FoldPHIArgGEPIntoPHI()
192 SmallVector<PHINode*, 16> OperandPhis(FixedOperands.size()); in FoldPHIArgGEPIntoPHI()
198 PHINode *NewPN = PHINode::Create(FirstOp->getType(), e, in FoldPHIArgGEPIntoPHI()
216 if (PHINode *OpPhi = OperandPhis[op]) in FoldPHIArgGEPIntoPHI()
276 Instruction *InstCombiner::FoldPHIArgLoadIntoPHI(PHINode &PN) { in FoldPHIArgLoadIntoPHI()
337 PHINode *NewPN = PHINode::Create(FirstLI->getOperand(0)->getType(), in FoldPHIArgLoadIntoPHI()
393 Instruction *InstCombiner::FoldPHIArgZextsIntoPHI(PHINode &Phi) { in FoldPHIArgZextsIntoPHI()
455 PHINode *NewPhi = PHINode::Create(NarrowType, NumIncomingValues, in FoldPHIArgZextsIntoPHI()
467 Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) { in FoldPHIArgOpIntoPHI()
522 PHINode *NewPN = PHINode::Create(FirstInst->getOperand(0)->getType(), in FoldPHIArgOpIntoPHI()
575 static bool DeadPHICycle(PHINode *PN, in DeadPHICycle()
576 SmallPtrSetImpl<PHINode*> &PotentiallyDeadPHIs) { in DeadPHICycle()
588 if (PHINode *PU = dyn_cast<PHINode>(PN->user_back())) in DeadPHICycle()
597 static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal, in PHIsEqualValue()
598 SmallPtrSetImpl<PHINode*> &ValueEqualPHIs) { in PHIsEqualValue()
610 if (PHINode *OpPN = dyn_cast<PHINode>(Op)) { in PHIsEqualValue()
622 static ConstantInt *GetAnyNonZeroConstInt(PHINode &PN) { in GetAnyNonZeroConstInt()
651 PHINode *PN; // The PHI that was lowered.
655 LoweredPHIRecord(PHINode *pn, unsigned Sh, Type *Ty) in LoweredPHIRecord()
659 LoweredPHIRecord(PHINode *pn, unsigned Sh) in LoweredPHIRecord()
674 return DenseMapInfo<PHINode*>::getHashValue(Val.PN) ^ (Val.Shift>>3) ^ in getHashValue()
694 Instruction *InstCombiner::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) { in SliceUpIllegalIntegerPHI()
703 SmallVector<PHINode*, 8> PHIsToSlice; in SliceUpIllegalIntegerPHI()
704 SmallPtrSet<PHINode*, 8> PHIsInspected; in SliceUpIllegalIntegerPHI()
710 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
732 if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) { in SliceUpIllegalIntegerPHI()
774 DenseMap<LoweredPHIRecord, PHINode*> ExtractedVals; in SliceUpIllegalIntegerPHI()
778 PHINode *PN = PHIsToSlice[PHIId]; in SliceUpIllegalIntegerPHI()
782 PHINode *EltPHI; in SliceUpIllegalIntegerPHI()
789 EltPHI = PHINode::Create(Ty, PN->getNumIncomingValues(), in SliceUpIllegalIntegerPHI()
812 if (PHINode *InPHI = dyn_cast<PHINode>(PN)) { in SliceUpIllegalIntegerPHI()
836 if (PHINode *OldInVal = dyn_cast<PHINode>(PN->getIncomingValue(i))) in SliceUpIllegalIntegerPHI()
866 Instruction *InstCombiner::visitPHINode(PHINode &PN) { in visitPHINode()
890 if (PHINode *PU = dyn_cast<PHINode>(PHIUser)) { in visitPHINode()
891 SmallPtrSet<PHINode*, 16> PotentiallyDeadPHIs; in visitPHINode()
943 isa<PHINode>(PN.getIncomingValue(InValNo))) in visitPHINode()
953 if (OpVal != NonPhiInVal && !isa<PHINode>(OpVal)) in visitPHINode()
961 SmallPtrSet<PHINode*, 16> ValueEqualPHIs; in visitPHINode()
972 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin()); in visitPHINode()