Lines Matching defs:PN
674 bool SCEVExpander::isNormalAddRecExprPHI(PHINode *PN, Instruction *IncV,
696 if (IncV == PN)
699 return isNormalAddRecExprPHI(PN, IncV, L);
838 bool SCEVExpander::isExpandedAddRecExprPHI(PHINode *PN, Instruction *IncV,
843 if (IVOper == PN)
852 Value *SCEVExpander::expandIVInc(PHINode *PN, Value *StepV, const Loop *L,
856 if (PN->getType()->isPointerTy()) {
858 IncV = Builder.CreatePtrAdd(PN, StepV, "scevgep");
861 Builder.CreateSub(PN, StepV, Twine(IVName) + ".iv.next") :
862 Builder.CreateAdd(PN, StepV, Twine(IVName) + ".iv.next");
954 for (PHINode &PN : L->getHeader()->phis()) {
955 if (!SE.isSCEVable(PN.getType()))
960 if (!PN.isComplete()) {
962 DebugType, dbgs() << "One incomplete PHI is found: " << PN << "\n");
966 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN));
979 dyn_cast<Instruction>(PN.getIncomingValueForBlock(LatchBlock));
985 if (!isExpandedAddRecExprPHI(&PN, TempIncV, L))
988 if (!isNormalAddRecExprPHI(&PN, TempIncV, L))
997 AddRecPhiMatch = &PN;
1007 AddRecPhiMatch = &PN;
1073 PHINode *PN =
1080 PN->addIncoming(StartV, Pred);
1090 Value *IncV = expandIVInc(PN, StepV, L, useSubtract);
1098 PN->addIncoming(IncV, Pred);
1107 InsertedValues.insert(PN);
1108 InsertedIVs.push_back(PN);
1109 return PN;
1135 PHINode *PN = getAddRecExprPHILiterally(Normalized, L, TruncTy, InvertStep);
1140 Result = PN;
1145 Result = PN->getIncomingValueForBlock(LatchBlock);
1183 Result = expandIVInc(PN, StepV, L, useSubtract);
1221 if (PHINode *PN = L->getCanonicalInductionVariable())
1222 if (SE.getTypeSizeInBits(PN->getType()) >= SE.getTypeSizeInBits(Ty))
1223 CanonicalIV = PN;
1654 if (PHINode *PN = dyn_cast<PHINode>(OrigInc))
1655 IP = PN->getParent()->getFirstInsertionPt();
1680 for (PHINode &PN : L->getHeader()->phis())
1681 Phis.push_back(&PN);
1699 auto SimplifyPHINode = [&](PHINode *PN) -> Value * {
1700 if (Value *V = simplifyInstruction(PN, {DL, &SE.TLI, &SE.DT, &SE.AC}))
1702 if (!SE.isSCEVable(PN->getType()))
1704 auto *Const = dyn_cast<SCEVConstant>(SE.getSCEV(PN));
2282 for (PHINode *PN : InsertedPHIs)
2283 rememberInstruction(PN);
2284 for (PHINode *PN : PHIsToRemove) {
2285 if (!PN->use_empty())
2287 InsertedValues.erase(PN);
2288 InsertedPostIncValues.erase(PN);
2289 PN->eraseFromParent();