Home
last modified time | relevance | path

Searched refs:SCEVAddRecExpr (Results 1 – 25 of 45) sorted by relevance

12

/freebsd-14.2/contrib/llvm-project/llvm/lib/Analysis/
H A DLoopCacheAnalysis.cpp83 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 DIVUsers.cpp59 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 DScalarEvolutionNormalization.cpp43 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 DScalarEvolution.cpp304 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 DDependenceAnalysis.cpp964 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 DLoopAccessAnalysis.cpp218 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 DDelinearization.cpp56 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 DScalarEvolutionAliasAnalysis.cpp115 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
/freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopBoundSplit.cpp43 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 DInductiveRangeCheckElimination.cpp153 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 DLoopDataPrefetch.cpp76 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 DLoopIdiomRecognize.cpp433 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 DLoopLoadElimination.cpp124 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 DLoopStrengthReduce.cpp439 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 DIndVarSimplify.cpp803 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 DAlignmentFromAssumptions.cpp108 if (const SCEVAddRecExpr *DiffARSCEV = dyn_cast<SCEVAddRecExpr>(DiffSCEV)) { in getNewAlignment()
/freebsd-14.2/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DScalarEvolutionNormalization.h46 class SCEVAddRecExpr; variable
50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
H A DScalarEvolution.h62 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 DScalarEvolutionExpressions.h347 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 DScalarEvolutionDivision.h53 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
/freebsd-14.2/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCLoopInstrFormPrep.cpp326 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 DScalarEvolutionExpander.cpp400 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 DSimplifyIndVar.cpp869 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 DLoopConstrainer.cpp179 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 DScalarEvolutionExpander.h301 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc,
470 Value *visitAddRecExpr(const SCEVAddRecExpr *S);
490 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *);
491 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,

12