Lines Matching refs:PHINode

25 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) {
82 PHINode *NewLHS = nullptr, *NewRHS = nullptr;
84 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(),
92 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(),
131 Instruction *InstCombiner::FoldPHIArgGEPIntoPHI(PHINode &PN) {
202 SmallVector<PHINode*, 16> OperandPhis(FixedOperands.size());
208 PHINode *NewPN = PHINode::Create(FirstOp->getType(), e,
226 if (PHINode *OpPhi = OperandPhis[op])
286 Instruction *InstCombiner::FoldPHIArgLoadIntoPHI(PHINode &PN) {
347 PHINode *NewPN = PHINode::Create(FirstLI->getOperand(0)->getType(),
403 Instruction *InstCombiner::FoldPHIArgZextsIntoPHI(PHINode &Phi) {
465 PHINode *NewPhi = PHINode::Create(NarrowType, NumIncomingValues,
477 Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) {
548 PHINode *NewPN = PHINode::Create(FirstInst->getOperand(0)->getType(),
599 static bool DeadPHICycle(PHINode *PN,
600 SmallPtrSetImpl<PHINode*> &PotentiallyDeadPHIs) {
612 if (PHINode *PU = dyn_cast<PHINode>(PN->user_back()))
621 static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal,
622 SmallPtrSetImpl<PHINode*> &ValueEqualPHIs) {
634 if (PHINode *OpPN = dyn_cast<PHINode>(Op)) {
665 PHINode *PN; // The PHI that was lowered.
669 LoweredPHIRecord(PHINode *pn, unsigned Sh, Type *Ty)
673 LoweredPHIRecord(PHINode *pn, unsigned Sh)
688 return DenseMapInfo<PHINode*>::getHashValue(Val.PN) ^ (Val.Shift>>3) ^
708 Instruction *InstCombiner::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) {
717 SmallVector<PHINode*, 8> PHIsToSlice;
718 SmallPtrSet<PHINode*, 8> PHIsInspected;
724 PHINode *PN = PHIsToSlice[PHIId];
746 if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) {
788 DenseMap<LoweredPHIRecord, PHINode*> ExtractedVals;
792 PHINode *PN = PHIsToSlice[PHIId];
796 PHINode *EltPHI;
803 EltPHI = PHINode::Create(Ty, PN->getNumIncomingValues(),
826 if (PHINode *InPHI = dyn_cast<PHINode>(PN)) {
850 if (PHINode *OldInVal = dyn_cast<PHINode>(PN->getIncomingValue(i)))
878 // PHINode simplification
880 Instruction *InstCombiner::visitPHINode(PHINode &PN) {
904 if (PHINode *PU = dyn_cast<PHINode>(PHIUser)) {
905 SmallPtrSet<PHINode*, 16> PotentiallyDeadPHIs;
934 isa<PHINode>(PN.getIncomingValue(InValNo)))
944 if (OpVal != NonPhiInVal && !isa<PHINode>(OpVal))
952 SmallPtrSet<PHINode*, 16> ValueEqualPHIs;
963 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin());