Home
last modified time | relevance | path

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

12345

/external/llvm-project/llvm/lib/Analysis/
DLoopCacheAnalysis.cpp82 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&AccessFn); in isOneDimensionalArray()
91 if (isa<SCEVAddRecExpr>(Start) || isa<SCEVAddRecExpr>(Step)) in isOneDimensionalArray()
369 const SCEVAddRecExpr *AccessFnAR = dyn_cast<SCEVAddRecExpr>(AccessFn); in delinearize()
430 assert(isa<SCEVAddRecExpr>(LastSubscript) && in getLastCoefficient()
432 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient()
438 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant()
445 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence()
448 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(&Subscript); in isSimpleAddRecurrence()
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()
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()
DScalarEvolution.cpp284 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print()
736 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
737 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
1016 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1217 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1329 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1361 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1384 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend()
1403 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
1475 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in proveNoWrapByVaryingStart()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/
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()
DLoopCacheAnalysis.cpp77 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&AccessFn); in isOneDimensionalArray()
86 if (isa<SCEVAddRecExpr>(Start) || isa<SCEVAddRecExpr>(Step)) in isOneDimensionalArray()
404 assert(isa<SCEVAddRecExpr>(LastSubscript) && in getLastCoefficient()
406 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LastSubscript); in getLastCoefficient()
412 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript); in isCoeffForLoopZeroOrInvariant()
419 if (!isa<SCEVAddRecExpr>(Subscript)) in isSimpleAddRecurrence()
422 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(&Subscript); in isSimpleAddRecurrence()
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()
DScalarEvolution.cpp272 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print()
703 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
704 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
979 void visitAddRecExpr(const SCEVAddRecExpr *Numerator) { in visitAddRecExpr()
1241 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1332 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1444 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1476 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1499 const_cast<SCEVAddRecExpr *>(PreAR)->setNoWrapFlags(WrapType); in getPreStartForExtend()
1518 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
[all …]
DScalarEvolutionExpander.cpp294 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant()
320 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i) in SimplifyAddOperands()
351 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs()
635 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop()
877 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) { in ExposePointerBase()
1097 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed()
1098 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed()
1107 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed()
1127 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW()
1141 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW()
[all …]
/external/llvm/lib/Analysis/
DIVUsers.cpp56 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isInteresting()
337 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop()
338 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in findAddRecForLoop()
347 if (const SCEVAddRecExpr *AR = findAddRecForLoop(*I, L)) in findAddRecForLoop()
356 if (const SCEVAddRecExpr *AR = findAddRecForLoop(getExpr(IU), L)) in getStride()
DScalarEvolution.cpp164 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print()
547 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in compare()
548 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in compare()
784 void visitAddRecExpr(const SCEVAddRecExpr *Numerator) { in visitAddRecExpr()
1047 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1132 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1241 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1273 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1296 const_cast<SCEVAddRecExpr *>(PreAR)->setNoWrapFlags(WrapType); in getPreStartForExtend()
1315 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
[all …]
DScalarEvolutionExpander.cpp277 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant()
303 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i) in SimplifyAddOperands()
334 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs()
613 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop()
802 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) { in ExposePointerBase()
1023 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed()
1024 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed()
1033 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed()
1053 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW()
1067 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW()
[all …]
/external/llvm/lib/Transforms/Scalar/
DLoopIdiomRecognize.cpp119 const SCEVAddRecExpr *Ev, const SCEV *BECount,
289 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride()
356 const SCEVAddRecExpr *StoreEv = in isLegalStore()
357 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore()
409 const SCEVAddRecExpr *LoadEv = in isLegalStore()
410 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand())); in isLegalStore()
522 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores()
523 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores()
558 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores()
559 cast<SCEVAddRecExpr>(SE->getSCEV(SecondStorePtr)); in processLoopStores()
[all …]
DLoopDataPrefetch.cpp94 bool isStrideLargeEnough(const SCEVAddRecExpr *AR);
134 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR) { in isStrideLargeEnough()
218 SmallVector<std::pair<Instruction *, const SCEVAddRecExpr *>, 16> PrefLoads; in runOnLoop()
243 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
DIndVarSimplify.cpp916 Instruction *cloneIVUser(NarrowIVDefUse DU, const SCEVAddRecExpr *WideAR);
918 const SCEVAddRecExpr *WideAR);
921 const SCEVAddRecExpr *getWideRecurrence(Instruction *NarrowUse);
923 const SCEVAddRecExpr* getExtendedOperandRecurrence(NarrowIVDefUse DU);
965 const SCEVAddRecExpr *WideAR) { in cloneIVUser()
1016 const SCEVAddRecExpr *WideAR) { in cloneArithmeticIVUser()
1123 const SCEVAddRecExpr* WidenIV::getExtendedOperandRecurrence(NarrowIVDefUse DU) { in getExtendedOperandRecurrence()
1162 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence()
1163 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence()
1174 const SCEVAddRecExpr *WidenIV::getWideRecurrence(Instruction *NarrowUse) { in getWideRecurrence()
[all …]
/external/llvm-project/llvm/include/llvm/Analysis/
DScalarEvolutionNormalization.h46 class SCEVAddRecExpr; variable
50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
DScalarEvolution.h67 class SCEVAddRecExpr; variable
367 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE);
370 const SCEVAddRecExpr *AR;
375 const SCEVAddRecExpr *AR,
949 const SCEVAddRecExpr *LHS, const SCEV *RHS);
966 getMonotonicPredicateType(const SCEVAddRecExpr *LHS,
1154 getWrapPredicate(const SCEVAddRecExpr *AR,
1162 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates(
1169 void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags);
1541 ConstantRange getRangeForAffineNoSelfWrappingAR(const SCEVAddRecExpr *AddRec,
[all …]
/external/llvm-project/llvm/lib/Transforms/Scalar/
DLoopDataPrefetch.cpp76 bool isStrideLargeEnough(const SCEVAddRecExpr *AR, unsigned TargetMinStride);
153 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR, in isStrideLargeEnough()
231 const SCEVAddRecExpr *LSCEVAddRec;
240 Prefetch(const SCEVAddRecExpr *L, Instruction *I) in Prefetch()
340 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
DLoopIdiomRecognize.cpp208 const SCEVAddRecExpr *Ev, const SCEV *BECount,
400 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride()
481 const SCEVAddRecExpr *StoreEv = in isLegalStore()
482 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore()
540 const SCEVAddRecExpr *LoadEv = in isLegalStore()
541 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand())); in isLegalStore()
658 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores()
659 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores()
694 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores()
695 cast<SCEVAddRecExpr>(SE->getSCEV(SecondStorePtr)); in processLoopStores()
[all …]
DLoopLoadElimination.cpp121 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne()
122 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne()
432 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers()
509 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop()
512 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop()
574 return !isa<SCEVAddRecExpr>( in processLoop()
576 !isa<SCEVAddRecExpr>( in processLoop()
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/
DLoopDataPrefetch.cpp76 bool isStrideLargeEnough(const SCEVAddRecExpr *AR);
141 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR) { in isStrideLargeEnough()
251 SmallVector<std::pair<Instruction *, const SCEVAddRecExpr *>, 16> PrefLoads; in runOnLoop()
274 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
DLoopIdiomRecognize.cpp178 const SCEVAddRecExpr *Ev, const SCEV *BECount,
362 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride()
440 const SCEVAddRecExpr *StoreEv = in isLegalStore()
441 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore()
499 const SCEVAddRecExpr *LoadEv = in isLegalStore()
500 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand())); in isLegalStore()
617 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores()
618 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores()
653 const SCEVAddRecExpr *SecondStoreEv = in processLoopStores()
654 cast<SCEVAddRecExpr>(SE->getSCEV(SecondStorePtr)); in processLoopStores()
[all …]
/external/llvm/include/llvm/Analysis/
DScalarEvolutionExpressions.h280 class SCEVAddRecExpr : public SCEVNAryExpr {
285 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, in SCEVAddRecExpr() function
343 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
344 return cast<SCEVAddRecExpr>(SE.getAddExpr(this, getStepRecurrence(SE))); in getPostIncExpr()
457 return ((SC*)this)->visitAddRecExpr((const SCEVAddRecExpr*)S); in visit()
586 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
665 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
676 const SCEVAddRecExpr *Rec = cast<SCEVAddRecExpr>(Res); in visitAddRecExpr()
DScalarEvolutionExpander.h212 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc,
341 Value *visitAddRecExpr(const SCEVAddRecExpr *S);
357 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *);
358 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
/external/llvm-project/llvm/lib/Transforms/Utils/
DScalarEvolutionExpander.cpp320 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant()
346 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i) in SimplifyAddOperands()
377 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs()
662 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop()
904 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) { in ExposePointerBase()
1121 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed()
1122 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed()
1131 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed()
1151 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW()
1165 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW()
[all …]

12345