| /llvm-project-15.0.7/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() 322 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(I)); in computeRefCost() 425 const SCEVAddRecExpr *AccessFnAR = dyn_cast<SCEVAddRecExpr>(AccessFn); in delinearize() 499 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(Idx)); in getSubscriptIndex() 509 auto *AR = cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient() 515 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant() 522 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence() 525 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() 359 if (const SCEVAddRecExpr *AR = findAddRecForLoop(getExpr(IU), L)) in getStride()
|
| H A D | ScalarEvolutionNormalization.cpp | 43 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr); 48 NormalizeDenormalizeRewriter::visitAddRecExpr(const SCEVAddRecExpr *AR) { in visitAddRecExpr() 100 auto Pred = [&](const SCEVAddRecExpr *AR) { in normalizeForPostIncUse() 114 auto Pred = [&](const SCEVAddRecExpr *AR) { in denormalizeForPostIncUse()
|
| H A D | ScalarEvolution.cpp | 294 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print() 755 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity() 756 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity() 1425 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend() 1644 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExpr() 1984 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExpr() 11791 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge() 12389 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans() 12822 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans() 13359 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition() [all …]
|
| H A D | DependenceAnalysis.cpp | 901 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() 1070 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() 2168 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testSIV() 2169 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testSIV() 2245 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testRDIV() 2246 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testRDIV() 3020 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient() 3036 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient() 3056 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient() 3438 const SCEVAddRecExpr *SrcAR = dyn_cast<SCEVAddRecExpr>(SrcSCEV); in tryDelinearizeParametricSize() [all …]
|
| H A D | ScalarEvolutionAliasAnalysis.cpp | 115 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
|
| H A D | Delinearization.cpp | 58 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow() 98 if (isa<SCEVAddRecExpr>(S)) { in follow() 350 if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr)) in computeAccessFunctions()
|
| /llvm-project-15.0.7/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 | LoopIdiomRecognize.cpp | 506 const SCEVAddRecExpr *StoreEv = in isLegalStore() 507 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore() 565 const SCEVAddRecExpr *LoadEv = in isLegalStore() 671 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores() 707 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores() 775 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStores() 844 const SCEVAddRecExpr *StoreEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Dest)); in processLoopMemCpy() 847 const SCEVAddRecExpr *LoadEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Source)); in processLoopMemCpy() 910 const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer)); in processLoopMemSet() 1257 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStoreOfLoopLoad() [all …]
|
| H A D | LoopLoadElimination.cpp | 117 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne() 118 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne() 429 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers() 506 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop() 509 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop() 571 return !isa<SCEVAddRecExpr>( in processLoop() 573 !isa<SCEVAddRecExpr>( in processLoop()
|
| H A D | LoopStrengthReduce.cpp | 425 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in DoInitialMatch() 717 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv() 799 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate() 825 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol() 1013 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion() 1271 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) { in RateRegister() 2155 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(PH)); in OptimizeShadowIV() 2340 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(IV); in OptimizeMax() 2706 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in CollectInterestingTypesAndFactors() 3594 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in CollectSubexprs() [all …]
|
| H A D | InductiveRangeCheckElimination.cpp | 215 const SCEVAddRecExpr *IndVar, 378 const auto *IndexAddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Index)); in extractRangeChecksFromCond() 807 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in parseLoopStructure() 808 if (isa<SCEVAddRecExpr>(RightSCEV)) { in parseLoopStructure() 818 auto HasNoSignedWrap = [&](const SCEVAddRecExpr *AR) { in parseLoopStructure() 826 const SCEVAddRecExpr *ExtendAfterOp = in parseLoopStructure() 827 dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in parseLoopStructure() 847 const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV); in parseLoopStructure() 1581 ScalarEvolution &SE, const SCEVAddRecExpr *IndVar, in computeSafeIterationSpace() 1933 const SCEVAddRecExpr *IndVar = in run() [all …]
|
| H A D | IndVarSimplify.cpp | 872 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in isLoopCounter() 883 isa<SCEVAddRecExpr>(SE->getSCEV(IncV))); in isLoopCounter() 916 const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in FindLoopCounter() 981 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar)); in genLoopLimit() 1104 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar)); in linearFunctionTestReplace() 1525 if (!LHS->hasOneUse() && !isa<SCEVAddRecExpr>(SE->getSCEV(LHSOp))) in canonicalizeExitCondition() 2022 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ExitCount); in run()
|
| /llvm-project-15.0.7/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 381 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE); 384 const SCEVAddRecExpr *AR; 389 const SCEVAddRecExpr *AR, 396 const SCEVAddRecExpr *getExpr() const; 1075 getMonotonicPredicateType(const SCEVAddRecExpr *LHS, 1168 getWrapPredicate(const SCEVAddRecExpr *AR, 1176 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates( 1983 getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, 2208 const SCEVAddRecExpr *getAsAddRec(Value *V); [all …]
|
| H A D | ScalarEvolutionExpressions.h | 342 class SCEVAddRecExpr : public SCEVNAryExpr { 347 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, const SCEV *const *O, size_t N, in SCEVAddRecExpr() function 410 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const; 634 return ((SC *)this)->visitAddRecExpr((const SCEVAddRecExpr *)S); in visit() 837 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 949 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 958 return SCEVAddRecExpr::evaluateAtIteration(Operands, Map[L], SE); in visitAddRecExpr()
|
| H A D | ScalarEvolutionDivision.h | 51 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
|
| /llvm-project-15.0.7/llvm/lib/Target/PowerPC/ |
| H A D | PPCLoopInstrFormPrep.cpp | 325 rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, 568 const SCEVAddRecExpr *BasePtrSCEV = cast<SCEVAddRecExpr>(BaseSCEV); in rewriteLoadStoresForCommoningChains() 839 cast<SCEVAddRecExpr>(LSCEV)->getStepRecurrence(*SE)) in addOneCandidate() 882 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in collectCandidates() 1016 const SCEVAddRecExpr *BasePtrSCEV = in rewriteLoadStores() 1017 cast<SCEVAddRecExpr>(BucketChain.BaseSCEV); in rewriteLoadStores() 1171 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in getNodeForInc() 1237 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in alreadyPrepared() 1324 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop() 1369 const SCEVAddRecExpr *ARSCEV = in runOnLoop() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.cpp | 344 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant() 401 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs() 692 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop() 1203 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in getAddRecExprPHILiterally() 1360 const SCEVAddRecExpr *Normalized = S; in expandAddRecExprLiterally() 1373 Normalized = cast<SCEVAddRecExpr>( in expandAddRecExprLiterally() 1393 cast<SCEVAddRecExpr>(SE.getAddRecExpr( in expandAddRecExprLiterally() 1634 if (isa<SCEVAddRecExpr>(Ext)) in visitAddRecExpr() 2327 Cost += costAndCollectOperands<SCEVAddRecExpr>( in isHighCostExpansionHelper() 2495 const auto *A = cast<SCEVAddRecExpr>(Pred->getExpr()); in expandWrapPredicate() [all …]
|
| H A D | SimplifyIndVar.cpp | 856 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser() 1100 const SCEVAddRecExpr *WideAR); 1105 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>; 1206 const SCEVAddRecExpr *WideAR) { in cloneIVUser() 1396 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence() 1397 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence() 1426 if (isa<SCEVAddRecExpr>(WideExpr)) in getWideRecurrence() 1439 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence() 1627 const SCEVAddRecExpr *AddRecOp1 = dyn_cast<SCEVAddRecExpr>(Op1); in widenWithVariantUse() 1880 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in createWideIV() [all …]
|
| /llvm-project-15.0.7/llvm/unittests/Transforms/Utils/ |
| H A D | ScalarEvolutionExpanderTest.cpp | 264 EXPECT_TRUE(isa<SCEVAddRecExpr>(S)); in TEST_F() 265 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in TEST_F() 734 [&](std::function<const SCEVAddRecExpr *(ScalarEvolution & SE, Loop * L)> in TEST_F() 773 auto TestNarrowCanonicalIV = [&](std::function<const SCEVAddRecExpr *( in TEST_F() 823 [&](std::function<const SCEVAddRecExpr *(ScalarEvolution & SE, Loop * L)> in TEST_F() 879 auto GetAR3 = [&](ScalarEvolution &SE, Loop *L) -> const SCEVAddRecExpr * { in TEST_F() 882 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, L, SCEV::FlagAnyWrap)); in TEST_F() 889 auto GetAR4 = [&](ScalarEvolution &SE, Loop *L) -> const SCEVAddRecExpr * { in TEST_F() 893 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, L, SCEV::FlagAnyWrap)); in TEST_F() 900 auto GetAR5 = [&](ScalarEvolution &SE, Loop *L) -> const SCEVAddRecExpr * { in TEST_F() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.h | 295 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc, 467 Value *visitAddRecExpr(const SCEVAddRecExpr *S); 487 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *); 488 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
|
| /llvm-project-15.0.7/llvm/unittests/Analysis/ |
| H A D | ScalarEvolutionTest.cpp | 246 EXPECT_TRUE(isa<SCEVAddRecExpr>(FirstExprForIV0)); in TEST_F() 247 EXPECT_TRUE(isa<SCEVAddRecExpr>(FirstExprForIV0Inc)); in TEST_F() 248 EXPECT_TRUE(isa<SCEVAddRecExpr>(SecondExprForIV0)); in TEST_F() 529 auto *S0 = cast<SCEVAddRecExpr>(SE.getSCEV(&I0)); in TEST_F() 536 auto *S1 = cast<SCEVAddRecExpr>(SE.getSCEV(&I1)); in TEST_F() 1113 EXPECT_TRUE(isa<SCEVAddRecExpr>(ScevInc)); in TEST_F() 1210 auto *AR = dyn_cast<SCEVAddRecExpr>(WithUMin); in TEST_F() 1295 const Loop *L = cast<SCEVAddRecExpr>(ScevIV)->getLoop(); in TEST_F() 1571 const Loop *L = cast<SCEVAddRecExpr>(ScevIV)->getLoop(); in TEST_F() 1612 const Loop *L = cast<SCEVAddRecExpr>(ScevIV)->getLoop(); in TEST_F() [all …]
|
| /llvm-project-15.0.7/polly/lib/Support/ |
| H A D | SCEVValidator.cpp | 219 ValidatorResult visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 503 if (auto AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in follow() 528 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) in follow() 677 auto *AddRec = dyn_cast<SCEVAddRecExpr>(S); in extractConstantFactor()
|