| /freebsd-14.2/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() 321 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(I)); in computeRefCost() 424 const SCEVAddRecExpr *AccessFnAR = dyn_cast<SCEVAddRecExpr>(AccessFn); in delinearize() 498 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(Idx)); in getSubscriptIndex() 508 auto *AR = cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient() 514 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant() 521 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence() 524 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() 728 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity() 729 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity() 1357 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend() 1616 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExprImpl() 1990 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExprImpl() 6707 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(S); in getRangeRef() 9846 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(V); in computeSCEVAtScope() 12701 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans() 13697 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition() [all …]
|
| H A D | DependenceAnalysis.cpp | 964 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() 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() 3083 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient() 3099 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient() 3119 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient() 3501 const SCEVAddRecExpr *SrcAR = dyn_cast<SCEVAddRecExpr>(SrcSCEV); in tryDelinearizeParametricSize() [all …]
|
| H A D | LoopAccessAnalysis.cpp | 218 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrExpr); in insert() 290 auto *SrcAR = dyn_cast<SCEVAddRecExpr>(Src->Expr); in tryToCreateDiffCheck() 291 auto *SinkAR = dyn_cast<SCEVAddRecExpr>(Sink->Expr); in tryToCreateDiffCheck() 345 isa<SCEVAddRecExpr>(SinkStartInt) && isa<SCEVAddRecExpr>(SrcStartInt)) { in tryToCreateDiffCheck() 346 auto *SrcStartAR = cast<SCEVAddRecExpr>(SrcStartInt); in tryToCreateDiffCheck() 823 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in hasComputableBounds() 1055 (isa<SCEVAddRecExpr>(get<0>(Scevs[0])) || in findForkedPointer() 1057 (isa<SCEVAddRecExpr>(get<0>(Scevs[1])) || in findForkedPointer() 1094 if (!Assume || !isa<SCEVAddRecExpr>(Expr)) in createCheckForAccess() 1478 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in getPtrStride() [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 | 115 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
|
| /freebsd-14.2/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 | InductiveRangeCheckElimination.cpp | 153 const SCEVAddRecExpr *&Index, 163 const SCEVAddRecExpr *&Index, 228 const SCEVAddRecExpr *IndVar, 272 const SCEVAddRecExpr *&Index, in parseRangeCheckICmp() 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 *IndexAddRec = nullptr; in extractRangeChecksFromCond() 652 const SCEVAddRecExpr *IndVar, in computeSafeIterationSpace() [all …]
|
| 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 | 433 const SCEVAddRecExpr *StoreEv = in isLegalStore() 434 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore() 492 const SCEVAddRecExpr *LoadEv = in isLegalStore() 598 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores() 634 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores() 702 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStores() 771 const SCEVAddRecExpr *StoreEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Dest)); in processLoopMemCpy() 774 const SCEVAddRecExpr *LoadEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Source)); in processLoopMemCpy() 837 const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer)); in processLoopMemSet() 1173 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStoreOfLoopLoad() [all …]
|
| 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() 438 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers() 529 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop() 532 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop() 594 return !isa<SCEVAddRecExpr>( in processLoop() 596 !isa<SCEVAddRecExpr>( in processLoop()
|
| H A D | LoopStrengthReduce.cpp | 439 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in DoInitialMatch() 731 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv() 813 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate() 839 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol() 1026 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion() 1284 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) { in RateRegister() 2357 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(IV); in OptimizeMax() 2715 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in CollectInterestingTypesAndFactors() 3616 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in CollectSubexprs() 3663 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in mayUsePostIncMode() [all …]
|
| H A D | IndVarSimplify.cpp | 803 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in isLoopCounter() 814 isa<SCEVAddRecExpr>(SE->getSCEV(IncV))); in isLoopCounter() 843 const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in FindLoopCounter() 909 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar)); in genLoopLimit() 922 AR = cast<SCEVAddRecExpr>(SE->getTruncateExpr(AR, ExitCount->getType())); in genLoopLimit() 925 const SCEVAddRecExpr *ARBase = UsePostInc ? AR->getPostIncExpr(*SE) : AR; in genLoopLimit() 982 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar)); in linearFunctionTestReplace() 1510 if (!LHS->hasOneUse() && !isa<SCEVAddRecExpr>(SE->getSCEV(LHSOp))) in canonicalizeExitCondition()
|
| H A D | AlignmentFromAssumptions.cpp | 108 if (const SCEVAddRecExpr *DiffARSCEV = dyn_cast<SCEVAddRecExpr>(DiffSCEV)) { in getNewAlignment()
|
| /freebsd-14.2/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; 1172 getMonotonicPredicateType(const SCEVAddRecExpr *LHS, 1269 getWrapPredicate(const SCEVAddRecExpr *AR, 1277 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates( 2084 getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, 2325 const SCEVAddRecExpr *getAsAddRec(Value *V); [all …]
|
| H A D | ScalarEvolutionExpressions.h | 347 class SCEVAddRecExpr : public SCEVNAryExpr { 352 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, const SCEV *const *O, size_t N, in SCEVAddRecExpr() function 415 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const; 629 return ((SC *)this)->visitAddRecExpr((const SCEVAddRecExpr *)S); in visit() 828 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 940 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 949 return SCEVAddRecExpr::evaluateAtIteration(Operands, Map[L], SE); in visitAddRecExpr()
|
| H A D | ScalarEvolutionDivision.h | 53 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
|
| /freebsd-14.2/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() 840 cast<SCEVAddRecExpr>(LSCEV)->getStepRecurrence(*SE)) in addOneCandidate() 883 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in collectCandidates() 1017 const SCEVAddRecExpr *BasePtrSCEV = in rewriteLoadStores() 1018 cast<SCEVAddRecExpr>(BucketChain.BaseSCEV); in rewriteLoadStores() 1171 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in getNodeForInc() 1239 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in alreadyPrepared() 1326 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop() 1371 const SCEVAddRecExpr *ARSCEV = in runOnLoop() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.cpp | 400 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop() 810 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed() 906 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in getAddRecExprPHILiterally() 1060 const SCEVAddRecExpr *Normalized = S; in expandAddRecExprLiterally() 1064 Normalized = cast<SCEVAddRecExpr>( in expandAddRecExprLiterally() 1269 if (isa<SCEVAddRecExpr>(Ext)) in visitAddRecExpr() 1586 if (isa<SCEVAddRecExpr>(PhiExpr)) { in replaceCongruentIVs() 1949 assert(cast<SCEVAddRecExpr>(S)->getNumOperands() >= 2 && in isHighCostExpansionHelper() 1951 Cost += costAndCollectOperands<SCEVAddRecExpr>( in isHighCostExpansionHelper() 2113 const auto *A = cast<SCEVAddRecExpr>(Pred->getExpr()); in expandWrapPredicate() [all …]
|
| H A D | SimplifyIndVar.cpp | 869 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser() 1120 const SCEVAddRecExpr *WideAR); 1125 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>; 1226 const SCEVAddRecExpr *WideAR) { in cloneIVUser() 1432 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence() 1433 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence() 1462 if (isa<SCEVAddRecExpr>(WideExpr)) in getWideRecurrence() 1475 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence() 1659 const SCEVAddRecExpr *AddRecOp1 = dyn_cast<SCEVAddRecExpr>(Op1); in widenWithVariantUse() 1919 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in createWideIV() [all …]
|
| H A D | LoopConstrainer.cpp | 179 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in parseLoopStructure() 180 if (isa<SCEVAddRecExpr>(RightSCEV)) { in parseLoopStructure() 190 auto HasNoSignedWrap = [&](const SCEVAddRecExpr *AR) { in parseLoopStructure() 198 const SCEVAddRecExpr *ExtendAfterOp = in parseLoopStructure() 199 dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in parseLoopStructure() 219 const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV); in parseLoopStructure()
|
| /freebsd-14.2/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.h | 301 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc, 470 Value *visitAddRecExpr(const SCEVAddRecExpr *S); 490 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *); 491 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
|