| /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() 435 const SCEVAddRecExpr *AccessFnAR = dyn_cast<SCEVAddRecExpr>(AccessFn); in delinearize() 509 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(getSubscript(Idx)); in getSubscriptIndex() 519 auto *AR = cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient() 525 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant() 532 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence() 535 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() 339 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop() 340 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in findAddRecForLoop() 348 if (const SCEVAddRecExpr *AR = findAddRecForLoop(Op, L)) in findAddRecForLoop() 360 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 | 310 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print() 396 return cast<SCEVAddRecExpr>(this)->getType(); in getType() 704 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity() 705 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity() 980 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration() 986 SCEVAddRecExpr::evaluateAtIteration(ArrayRef<const SCEV *> Operands, in evaluateAtIteration() 1213 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() 1330 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend() 1365 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend() 1388 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend() [all …]
|
| H A D | DependenceAnalysis.cpp | 991 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() 1130 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() 1152 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() 2250 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testSIV() 2251 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testSIV() 2327 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testRDIV() 2328 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testRDIV() 2338 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV() 2339 dyn_cast<SCEVAddRecExpr>(SrcAddRec->getStart())) { in testRDIV() 2351 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV() [all …]
|
| H A D | Delinearization.cpp | 55 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow() 95 if (isa<SCEVAddRecExpr>(S)) { in follow() 347 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()
|
| H A D | LoopAccessAnalysis.cpp | 211 static bool evaluatePtrAddRecAtMaxBTCWillNotWrap(const SCEVAddRecExpr *AR, in evaluatePtrAddRecAtMaxBTCWillNotWrap() 295 } else if (auto *AR = dyn_cast<SCEVAddRecExpr>(PtrExpr)) { in getStartAndEndForAccess() 449 isa<SCEVAddRecExpr>(SinkStartInt) && isa<SCEVAddRecExpr>(SrcStartInt)) { in tryToCreateDiffCheck() 450 auto *SrcStartAR = cast<SCEVAddRecExpr>(SrcStartInt); in tryToCreateDiffCheck() 451 auto *SinkStartAR = cast<SCEVAddRecExpr>(SinkStartInt); in tryToCreateDiffCheck() 918 getStrideFromAddRec(const SCEVAddRecExpr *AR, const Loop *Lp, Type *AccessTy, in getStrideFromAddRec() 962 static bool isNoWrap(PredicatedScalarEvolution &PSE, const SCEVAddRecExpr *AR, in isNoWrap() 1053 if (isa<SCEVAddRecExpr>(Scev) || L->isLoopInvariant(Ptr) || in findForkedSCEVs() 1203 (isa<SCEVAddRecExpr>(get<0>(Scevs[0])) || in findForkedPointer() 1205 (isa<SCEVAddRecExpr>(get<0>(Scevs[1])) || in findForkedPointer() [all …]
|
| /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() 385 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in splitLoopBound()
|
| H A D | LoopDataPrefetch.cpp | 75 bool isStrideLargeEnough(const SCEVAddRecExpr *AR, unsigned TargetMinStride); 155 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR, in isStrideLargeEnough() 235 const SCEVAddRecExpr *LSCEVAddRec; 244 Prefetch(const SCEVAddRecExpr *L, Instruction *I) : LSCEVAddRec(L) { in Prefetch() 347 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
|
| H A D | InductiveRangeCheckElimination.cpp | 145 const SCEVAddRecExpr *&Index, 155 const SCEVAddRecExpr *&Index, 160 const SCEVAddRecExpr *&Index, const SCEV *&End); 220 const SCEVAddRecExpr *IndVar, 266 const SCEVAddRecExpr *&Index, in parseRangeCheckICmp() 301 const SCEVAddRecExpr *&Index, in parseIvAgaisntLimit() 309 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(LHS)); in parseIvAgaisntLimit() 363 ScalarEvolution &SE, const SCEVAddRecExpr *&Index, const SCEV *&End) { in reassociateSubLHS() 382 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IV); in reassociateSubLHS() 501 const SCEVAddRecExpr *IndexAddRec = nullptr; in extractRangeChecksFromCond() [all …]
|
| H A D | LoopLoadElimination.cpp | 122 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne() 123 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne() 440 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers() 544 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop() 547 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop() 606 return !isa<SCEVAddRecExpr>( in processLoop() 608 !isa<SCEVAddRecExpr>( in processLoop()
|
| H A D | LoopIdiomRecognize.cpp | 234 const SCEVAddRecExpr *Ev, const SCEV *BECount, 241 const SCEVAddRecExpr *StoreEv, 242 const SCEVAddRecExpr *LoadEv, 385 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride() 627 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores() 628 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores() 663 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores() 664 cast<SCEVAddRecExpr>(SE->getSCEV(SecondStorePtr)); in processLoopStores() 731 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStores() 841 cast<SCEVAddRecExpr>(StoreEv), cast<SCEVAddRecExpr>(LoadEv), BECount); in processLoopMemCpy() [all …]
|
| H A D | LoopTermFold.cpp | 138 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in canFoldTermCondOfLoop() 160 const SCEVAddRecExpr *PostInc = AddRec->getPostIncExpr(SE); in canFoldTermCondOfLoop()
|
| H A D | LoopStrengthReduce.cpp | 619 return isa<SCEVAddRecExpr>(S) && (cast<SCEVAddRecExpr>(S)->getLoop() == &L); in containsAddRecDependentOnLoop() 804 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isAddRecSExtable() 807 return isa<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in isAddRecSExtable() 867 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv() 950 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate() 980 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol() 1092 static bool isExistingPhi(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isExistingPhi() 1166 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion() 1382 if (const auto *S = dyn_cast<SCEVAddRecExpr>(Reg)) in getSetupCost() 1401 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) { in RateRegister() [all …]
|
| H A D | IndVarSimplify.cpp | 817 isa<SCEVAddRecExpr>(SE->getSCEV(IncV))); in isLoopCounter() 846 const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in FindLoopCounter() 912 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar)); in genLoopLimit() 925 AR = cast<SCEVAddRecExpr>(SE->getTruncateExpr(AR, ExitCount->getType())); in genLoopLimit() 928 const SCEVAddRecExpr *ARBase = UsePostInc ? AR->getPostIncExpr(*SE) : AR; in genLoopLimit() 985 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar)); in linearFunctionTestReplace() 1497 if (!LHS->hasOneUse() && !isa<SCEVAddRecExpr>(SE->getSCEV(LHSOp))) in canonicalizeExitCondition()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
| H A D | PPCLoopInstrFormPrep.cpp | 317 rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, 560 const SCEVAddRecExpr *BasePtrSCEV = cast<SCEVAddRecExpr>(BaseSCEV); in rewriteLoadStoresForCommoningChains() 640 PPCLoopInstrFormPrep::rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, in rewriteForBase() 835 if (cast<SCEVAddRecExpr>(B.BaseSCEV)->getStepRecurrence(*SE) != in addOneCandidate() 836 cast<SCEVAddRecExpr>(LSCEV)->getStepRecurrence(*SE)) in addOneCandidate() 879 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in collectCandidates() 1013 const SCEVAddRecExpr *BasePtrSCEV = in rewriteLoadStores() 1014 cast<SCEVAddRecExpr>(BucketChain.BaseSCEV); in rewriteLoadStores() 1167 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in getNodeForInc() 1235 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in alreadyPrepared() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | ScalarEvolutionNormalization.h | 47 class SCEVAddRecExpr; variable 51 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
|
| H A D | ScalarEvolution.h | 60 class SCEVAddRecExpr; variable 381 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE); 384 const SCEVAddRecExpr *AR; 389 const SCEVAddRecExpr *AR, 396 const SCEVAddRecExpr *getExpr() const; 1138 const SCEVAddRecExpr *LHS, 1217 getMonotonicPredicateType(const SCEVAddRecExpr *LHS, 1313 getWrapPredicate(const SCEVAddRecExpr *AR, 1321 LLVM_ABI const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates( 1338 LLVM_ABI void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags); [all …]
|
| H A D | ScalarEvolutionExpressions.h | 348 class SCEVAddRecExpr : public SCEVNAryExpr { 353 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, const SCEV *const *O, size_t N, in SCEVAddRecExpr() function 418 LLVM_ABI const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const; 633 return ((SC *)this)->visitAddRecExpr((const SCEVAddRecExpr *)S); in visit() 832 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 944 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 954 return SCEVAddRecExpr::evaluateAtIteration(Operands, It->second, SE); in visitAddRecExpr()
|
| H A D | ScalarEvolutionDivision.h | 53 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.cpp | 449 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop() 894 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed() 895 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed() 907 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed() 926 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW() 940 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW() 958 SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized, in getAddRecExprPHILiterally() 990 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in getAddRecExprPHILiterally() 1136 Value *SCEVExpander::expandAddRecExprLiterally(const SCEVAddRecExpr *S) { in expandAddRecExprLiterally() 1141 const SCEVAddRecExpr *Normalized = S; in expandAddRecExprLiterally() [all …]
|
| H A D | SimplifyIndVar.cpp | 894 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()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.h | 340 LLVM_ABI Value *generateOverflowCheck(const SCEVAddRecExpr *AR, 511 Value *visitAddRecExpr(const SCEVAddRecExpr *S); 533 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *); 534 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
|