Home
last modified time | relevance | path

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

12

/freebsd-13.1/contrib/llvm-project/llvm/lib/Analysis/
H A DLoopCacheAnalysis.cpp82 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&AccessFn); in isOneDimensionalArray()
91 if (isa<SCEVAddRecExpr>(Start) || isa<SCEVAddRecExpr>(Step)) in isOneDimensionalArray()
367 const SCEVAddRecExpr *AccessFnAR = dyn_cast<SCEVAddRecExpr>(AccessFn); in delinearize()
428 assert(isa<SCEVAddRecExpr>(LastSubscript) && in getLastCoefficient()
430 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient()
436 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant()
443 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence()
446 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(&Subscript); in isSimpleAddRecurrence()
H A DScalarEvolutionNormalization.cpp42 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr);
47 NormalizeDenormalizeRewriter::visitAddRecExpr(const SCEVAddRecExpr *AR) { in visitAddRecExpr()
99 auto Pred = [&](const SCEVAddRecExpr *AR) { in normalizeForPostIncUse()
113 auto Pred = [&](const SCEVAddRecExpr *AR) { in denormalizeForPostIncUse()
H A DIVUsers.cpp63 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isInteresting()
256 auto NormalizePred = [&](const SCEVAddRecExpr *AR) { in AddUsersImpl()
395 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop()
396 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in findAddRecForLoop()
404 if (const SCEVAddRecExpr *AR = findAddRecForLoop(Op, L)) in findAddRecForLoop()
413 if (const SCEVAddRecExpr *AR = findAddRecForLoop(getExpr(IU), L)) in getStride()
H A DScalarEvolution.cpp285 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print()
739 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
740 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
1408 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1627 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExpr()
1968 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExpr()
11030 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge()
11576 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans()
11960 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans()
12957 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition()
[all …]
H A DDependenceAnalysis.cpp891 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript()
1048 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative()
2146 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testSIV()
2147 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testSIV()
2223 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testRDIV()
2224 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testRDIV()
2985 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient()
3001 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient()
3021 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient()
3417 const SCEVAddRecExpr *SrcAR = dyn_cast<SCEVAddRecExpr>(SrcSCEV); in tryDelinearizeParametricSize()
[all …]
H A DScalarEvolutionAliasAnalysis.cpp106 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
H A DLoopAccessAnalysis.cpp207 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Sc); in insert()
644 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in hasComputableBounds()
685 if (!Assume || !isa<SCEVAddRecExpr>(Expr)) in createCheckForAccess()
982 static bool isNoWrapAddRec(Value *Ptr, const SCEVAddRecExpr *AR, in isNoWrapAddRec()
1021 if (auto *OpAR = dyn_cast<SCEVAddRecExpr>(OpScev)) in isNoWrapAddRec()
1045 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in getPtrStride()
/freebsd-13.1/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.h67 class SCEVAddRecExpr; variable
367 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE);
370 const SCEVAddRecExpr *AR;
375 const SCEVAddRecExpr *AR,
1020 getMonotonicPredicateType(const SCEVAddRecExpr *LHS,
1208 getWrapPredicate(const SCEVAddRecExpr *AR,
1216 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates(
1990 getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS,
2197 const SCEVAddRecExpr *getAsAddRec(Value *V);
2218 bool areAddRecsEqualWithPreds(const SCEVAddRecExpr *AR1,
[all …]
H A DScalarEvolutionExpressions.h352 class SCEVAddRecExpr : public SCEVNAryExpr {
357 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, in SCEVAddRecExpr() function
421 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const;
596 return ((SC*)this)->visitAddRecExpr((const SCEVAddRecExpr*)S); in visit()
796 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
900 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
909 return SCEVAddRecExpr::evaluateAtIteration(Operands, Map[L], SE); in visitAddRecExpr()
H A DScalarEvolutionDivision.h50 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
/freebsd-13.1/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopDataPrefetch.cpp78 bool isStrideLargeEnough(const SCEVAddRecExpr *AR, unsigned TargetMinStride);
155 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR, in isStrideLargeEnough()
233 const SCEVAddRecExpr *LSCEVAddRec;
242 Prefetch(const SCEVAddRecExpr *L, Instruction *I) in Prefetch()
342 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
H A DLoopIdiomRecognize.cpp507 const SCEVAddRecExpr *StoreEv = in isLegalStore()
566 const SCEVAddRecExpr *LoadEv = in isLegalStore()
672 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores()
708 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores()
779 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStores()
846 const SCEVAddRecExpr *StoreEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Dest)); in processLoopMemCpy()
849 const SCEVAddRecExpr *LoadEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Source)); in processLoopMemCpy()
911 const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer)); in processLoopMemSet()
1172 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStoreOfLoopLoad()
1183 const SCEVAddRecExpr *LoadEv = cast<SCEVAddRecExpr>(SE->getSCEV(LoadPtr)); in processLoopStoreOfLoopLoad()
[all …]
H A DLoopBoundSplit.cpp64 if (isa<SCEVAddRecExpr>(Cond.BoundSCEV) && in analyzeICmp()
65 !isa<SCEVAddRecExpr>(Cond.AddRecSCEV)) { in analyzeICmp()
127 const SCEVAddRecExpr *AddRecSCEV = dyn_cast<SCEVAddRecExpr>(Cond.AddRecSCEV); in hasProcessableCondition()
374 if (SE.isSCEVable(PN.getType()) && isa<SCEVAddRecExpr>(SE.getSCEV(&PN))) { in splitLoopBound()
H A DLoopLoadElimination.cpp119 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne()
120 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne()
430 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers()
507 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop()
510 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop()
572 return !isa<SCEVAddRecExpr>( in processLoop()
574 !isa<SCEVAddRecExpr>( in processLoop()
H A DLoopStrengthReduce.cpp423 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in DoInitialMatch()
491 const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg); in isCanonical()
534 const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg); in canonicalize()
714 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv()
796 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate()
822 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol()
1010 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion()
1268 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) { in RateRegister()
2337 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(IV); in OptimizeMax()
2703 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in CollectInterestingTypesAndFactors()
[all …]
H A DInductiveRangeCheckElimination.cpp217 const SCEVAddRecExpr *IndVar,
380 const auto *IndexAddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Index)); in extractRangeChecksFromCond()
809 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in parseLoopStructure()
810 if (isa<SCEVAddRecExpr>(RightSCEV)) { in parseLoopStructure()
820 auto HasNoSignedWrap = [&](const SCEVAddRecExpr *AR) { in parseLoopStructure()
828 const SCEVAddRecExpr *ExtendAfterOp = in parseLoopStructure()
829 dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in parseLoopStructure()
849 const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV); in parseLoopStructure()
1583 ScalarEvolution &SE, const SCEVAddRecExpr *IndVar, in computeSafeIterationSpace()
1931 const SCEVAddRecExpr *IndVar = in run()
[all …]
H A DIndVarSimplify.cpp868 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in isLoopCounter()
879 isa<SCEVAddRecExpr>(SE->getSCEV(IncV))); in isLoopCounter()
912 const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in FindLoopCounter()
977 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar)); in genLoopLimit()
1107 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar)); in linearFunctionTestReplace()
1855 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ExitCount); in run()
H A DAlignmentFromAssumptions.cpp158 if (const SCEVAddRecExpr *DiffARSCEV = dyn_cast<SCEVAddRecExpr>(DiffSCEV)) { in getNewAlignment()
H A DLoopPredication.cpp240 const SCEVAddRecExpr *IV;
242 LoopICmp(ICmpInst::Predicate Pred, const SCEVAddRecExpr *IV, in LoopICmp()
393 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHSS); in parseLoopICmp()
489 NewLatchCheck.IV = dyn_cast<SCEVAddRecExpr>( in generateLoopLatchCheck()
/freebsd-13.1/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DScalarEvolutionExpander.cpp343 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant()
400 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs()
689 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop()
931 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) { in ExposePointerBase()
1246 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in getAddRecExprPHILiterally()
1410 const SCEVAddRecExpr *Normalized = S; in expandAddRecExprLiterally()
1423 Normalized = cast<SCEVAddRecExpr>( in expandAddRecExprLiterally()
1443 cast<SCEVAddRecExpr>(SE.getAddRecExpr( in expandAddRecExprLiterally()
1696 if (isa<SCEVAddRecExpr>(Ext)) in visitAddRecExpr()
2462 Cost += costAndCollectOperands<SCEVAddRecExpr>( in isHighCostExpansionHelper()
[all …]
H A DSimplifyIndVar.cpp816 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser()
1051 const SCEVAddRecExpr *WideAR);
1056 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>;
1157 const SCEVAddRecExpr *WideAR) { in cloneIVUser()
1347 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence()
1348 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence()
1377 if (isa<SCEVAddRecExpr>(WideExpr)) in getWideRecurrence()
1390 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence()
1578 const SCEVAddRecExpr *AddRecOp1 = dyn_cast<SCEVAddRecExpr>(Op1); in widenWithVariantUse()
1832 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in createWideIV()
[all …]
H A DLoopPeel.cpp219 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in countToEliminateCompares()
220 if (isa<SCEVAddRecExpr>(RightSCEV)) { in countToEliminateCompares()
227 const SCEVAddRecExpr *LeftAR = cast<SCEVAddRecExpr>(LeftSCEV); in countToEliminateCompares()
/freebsd-13.1/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCLoopInstrFormPrep.cpp367 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in collectCandidates()
496 const SCEVAddRecExpr *BasePtrSCEV = in rewriteLoadStores()
497 cast<SCEVAddRecExpr>(BucketChain.BaseSCEV); in rewriteLoadStores()
759 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in alreadyPrepared()
846 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
/freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DScalarEvolutionExpander.h297 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc,
467 Value *visitAddRecExpr(const SCEVAddRecExpr *S);
485 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *);
486 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,

12