/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | LoopCacheAnalysis.cpp | 83 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&AccessFn); in isOneDimensionalArray() 92 if (isa<SCEVAddRecExpr>(Start) || isa<SCEVAddRecExpr>(Step)) in isOneDimensionalArray() 326 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(I)); in computeRefCost() 429 const SCEVAddRecExpr *AccessFnAR = dyn_cast<SCEVAddRecExpr>(AccessFn); in delinearize() 503 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(Idx)); in getSubscriptIndex() 513 auto *AR = cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient() 519 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant() 526 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence() 529 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(&Subscript); in isSimpleAddRecurrence()
|
H A D | IVUsers.cpp | 59 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isInteresting() 211 auto NormalizePred = [&](const SCEVAddRecExpr *AR) { in AddUsersIfInteresting() 341 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop() 342 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in findAddRecForLoop() 350 if (const SCEVAddRecExpr *AR = findAddRecForLoop(Op, L)) in findAddRecForLoop() 362 if (const SCEVAddRecExpr *AR = findAddRecForLoop(Expr, L)) in getStride()
|
H A D | ScalarEvolutionNormalization.cpp | 43 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr); 48 NormalizeDenormalizeRewriter::visitAddRecExpr(const SCEVAddRecExpr *AR) { in visitAddRecExpr() 103 auto Pred = [&](const SCEVAddRecExpr *AR) { in normalizeForPostIncUse() 125 auto Pred = [&](const SCEVAddRecExpr *AR) { in denormalizeForPostIncUse()
|
H A D | ScalarEvolution.cpp | 304 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print() 392 return cast<SCEVAddRecExpr>(this)->getType(); in getType() 735 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity() 736 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity() 974 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration() 980 SCEVAddRecExpr::evaluateAtIteration(ArrayRef<const SCEV *> Operands, in evaluateAtIteration() 1207 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() 1324 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend() 1359 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend() 1382 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend() [all …]
|
H A D | DependenceAnalysis.cpp | 964 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() 1111 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() 1133 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() 2231 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testSIV() 2232 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testSIV() 2308 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testRDIV() 2309 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testRDIV() 2319 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV() 2320 dyn_cast<SCEVAddRecExpr>(SrcAddRec->getStart())) { in testRDIV() 2332 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV() [all …]
|
H A D | LoopAccessAnalysis.cpp | 224 } else if (auto *AR = dyn_cast<SCEVAddRecExpr>(PtrExpr)) { in getStartAndEndForAccess() 305 auto *SrcAR = dyn_cast<SCEVAddRecExpr>(Src->Expr); in tryToCreateDiffCheck() 306 auto *SinkAR = dyn_cast<SCEVAddRecExpr>(Sink->Expr); in tryToCreateDiffCheck() 353 isa<SCEVAddRecExpr>(SinkStartInt) && isa<SCEVAddRecExpr>(SrcStartInt)) { in tryToCreateDiffCheck() 354 auto *SrcStartAR = cast<SCEVAddRecExpr>(SrcStartInt); in tryToCreateDiffCheck() 355 auto *SinkStartAR = cast<SCEVAddRecExpr>(SinkStartInt); in tryToCreateDiffCheck() 821 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in hasComputableBounds() 896 if (isa<SCEVAddRecExpr>(Scev) || L->isLoopInvariant(Ptr) || in findForkedSCEVs() 1053 (isa<SCEVAddRecExpr>(get<0>(Scevs[0])) || in findForkedPointer() 1055 (isa<SCEVAddRecExpr>(get<0>(Scevs[1])) || in findForkedPointer() [all …]
|
H A D | Delinearization.cpp | 56 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow() 96 if (isa<SCEVAddRecExpr>(S)) { in follow() 348 if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr)) in computeAccessFunctions()
|
H A D | ScalarEvolutionAliasAnalysis.cpp | 128 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LoopBoundSplit.cpp | 43 const SCEVAddRecExpr *AddRecSCEV = nullptr; 58 const SCEVAddRecExpr *LHSAddRecSCEV = dyn_cast<SCEVAddRecExpr>(AddRecSCEV); in analyzeICmp() 59 const SCEVAddRecExpr *RHSAddRecSCEV = dyn_cast<SCEVAddRecExpr>(BoundSCEV); in analyzeICmp() 67 Cond.AddRecSCEV = dyn_cast<SCEVAddRecExpr>(AddRecSCEV); in analyzeICmp() 386 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in splitLoopBound()
|
H A D | LoopDataPrefetch.cpp | 76 bool isStrideLargeEnough(const SCEVAddRecExpr *AR, unsigned TargetMinStride); 156 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR, in isStrideLargeEnough() 236 const SCEVAddRecExpr *LSCEVAddRec; 245 Prefetch(const SCEVAddRecExpr *L, Instruction *I) : LSCEVAddRec(L) { in Prefetch() 348 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
|
H A D | LoopLoadElimination.cpp | 124 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne() 125 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne() 442 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers() 545 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop() 548 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop() 610 return !isa<SCEVAddRecExpr>( in processLoop() 612 !isa<SCEVAddRecExpr>( in processLoop()
|
H A D | LoopIdiomRecognize.cpp | 212 const SCEVAddRecExpr *Ev, const SCEV *BECount, 219 const SCEVAddRecExpr *StoreEv, 220 const SCEVAddRecExpr *LoadEv, 357 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride() 438 const SCEVAddRecExpr *StoreEv = in isLegalStore() 439 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore() 497 const SCEVAddRecExpr *LoadEv = in isLegalStore() 498 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand())); in isLegalStore() 603 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores() 604 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores() [all …]
|
H A D | InductiveRangeCheckElimination.cpp | 153 const SCEVAddRecExpr *&Index, 163 const SCEVAddRecExpr *&Index, 168 const SCEVAddRecExpr *&Index, const SCEV *&End); 228 const SCEVAddRecExpr *IndVar, 272 const SCEVAddRecExpr *&Index, 307 const SCEVAddRecExpr *&Index, in parseIvAgaisntLimit() 315 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(LHS)); in parseIvAgaisntLimit() 369 ScalarEvolution &SE, const SCEVAddRecExpr *&Index, const SCEV *&End) { in reassociateSubLHS() 388 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IV); in reassociateSubLHS() 507 const SCEVAddRecExpr *IndexAddRe in extractRangeChecksFromCond() [all...] |
H A D | LoopStrengthReduce.cpp | 567 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in DoInitialMatch() 624 return isa<SCEVAddRecExpr>(S) && (cast<SCEVAddRecExpr>(S)->getLoop() == &L); in containsAddRecDependentOnLoop() 796 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isAddRecSExtable() 799 return isa<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in isAddRecSExtable() 859 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv() 941 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate() 975 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol() 1087 static bool isExistingPhi(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isExistingPhi() 1162 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion() 1402 if (const auto *S = dyn_cast<SCEVAddRecExpr>(Reg)) in getSetupCost() [all …]
|
H A D | IndVarSimplify.cpp | 815 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in isLoopCounter() 826 isa<SCEVAddRecExpr>(SE->getSCEV(IncV))); in isLoopCounter() 855 const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in FindLoopCounter() 921 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar)); in genLoopLimit() 934 AR = cast<SCEVAddRecExpr>(SE->getTruncateExpr(AR, ExitCount->getType())); in genLoopLimit() 937 const SCEVAddRecExpr *ARBase = UsePostInc ? AR->getPostIncExpr(*SE) : AR; in genLoopLimit() 994 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar)); in linearFunctionTestReplace() 1522 if (!LHS->hasOneUse() && !isa<SCEVAddRecExpr>(SE->getSCEV(LHSOp))) in canonicalizeExitCondition()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCLoopInstrFormPrep.cpp | 326 rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, 569 const SCEVAddRecExpr *BasePtrSCEV = cast<SCEVAddRecExpr>(BaseSCEV); in rewriteLoadStoresForCommoningChains() 649 PPCLoopInstrFormPrep::rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, in rewriteForBase() 844 if (cast<SCEVAddRecExpr>(B.BaseSCEV)->getStepRecurrence(*SE) != in addOneCandidate() 845 cast<SCEVAddRecExpr>(LSCEV)->getStepRecurrence(*SE)) in addOneCandidate() 888 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in collectCandidates() 1022 const SCEVAddRecExpr *BasePtrSCEV = in rewriteLoadStores() 1023 cast<SCEVAddRecExpr>(BucketChain.BaseSCEV); in rewriteLoadStores() 1176 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in getNodeForInc() 1244 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in alreadyPrepared() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | ScalarEvolutionNormalization.h | 46 class SCEVAddRecExpr; variable 50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
|
H A D | ScalarEvolution.h | 62 class SCEVAddRecExpr; variable 384 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE); 387 const SCEVAddRecExpr *AR; 392 const SCEVAddRecExpr *AR, 399 const SCEVAddRecExpr *getExpr() const; 1097 const SCEVAddRecExpr *LHS, const SCEV *RHS); 1180 getMonotonicPredicateType(const SCEVAddRecExpr *LHS, 1275 getWrapPredicate(const SCEVAddRecExpr *AR, 1283 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates( 1300 void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags); [all …]
|
H A D | ScalarEvolutionExpressions.h | 342 /// mostly just supporting infrastructure to allow SCEVAddRecExpr 347 class SCEVAddRecExpr : public SCEVNAryExpr { 352 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, const SCEV *const *O, size_t N, 415 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const; 629 return ((SC *)this)->visitAddRecExpr((const SCEVAddRecExpr *)S); in visit() 828 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { 940 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { 949 return SCEVAddRecExpr::evaluateAtIteration(Operands, Map[L], SE); in visitAddRecExpr() 353 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, const SCEV *const *O, size_t N, SCEVAddRecExpr() function
|
H A D | ScalarEvolutionDivision.h | 53 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | ScalarEvolutionExpander.cpp | 439 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop() 870 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed() 871 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed() 883 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed() 902 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW() 916 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW() 934 SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized, in getAddRecExprPHILiterally() 966 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in getAddRecExprPHILiterally() 1112 Value *SCEVExpander::expandAddRecExprLiterally(const SCEVAddRecExpr *S) { in expandAddRecExprLiterally() 1117 const SCEVAddRecExpr *Normalized = S; in expandAddRecExprLiterally() [all …]
|
H A D | SimplifyIndVar.cpp | 892 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser() 1146 Instruction *cloneIVUser(NarrowIVDefUse DU, const SCEVAddRecExpr *WideAR); 1148 const SCEVAddRecExpr *WideAR); 1153 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>; 1256 const SCEVAddRecExpr *WideAR) { in cloneIVUser() 1308 const SCEVAddRecExpr *WideAR) { in cloneArithmeticIVUser() 1530 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence() 1531 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, Op->Opcode)); in getExtendedOperandRecurrence() 1560 if (isa<SCEVAddRecExpr>(WideExpr)) in getWideRecurrence() 1573 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence() [all …]
|
H A D | LoopConstrainer.cpp | 185 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in parseLoopStructure() 186 if (isa<SCEVAddRecExpr>(RightSCEV)) { in parseLoopStructure() 196 auto HasNoSignedWrap = [&](const SCEVAddRecExpr *AR) { in parseLoopStructure() 204 const SCEVAddRecExpr *ExtendAfterOp = in parseLoopStructure() 205 dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in parseLoopStructure() 225 const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV); in parseLoopStructure()
|
H A D | LoopPeel.cpp | 397 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in countToEliminateCompares() 398 if (isa<SCEVAddRecExpr>(RightSCEV)) { in countToEliminateCompares() 405 const SCEVAddRecExpr *LeftAR = cast<SCEVAddRecExpr>(LeftSCEV); in countToEliminateCompares() 463 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IterSCEV); in countToEliminateCompares()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | ScalarEvolutionExpander.h | 327 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc, 496 Value *visitAddRecExpr(const SCEVAddRecExpr *S); 518 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *); 519 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
|