/external/llvm-project/llvm/lib/Analysis/ |
D | LoopCacheAnalysis.cpp | 82 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()
|
D | ScalarEvolutionNormalization.cpp | 42 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()
|
D | IVUsers.cpp | 63 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()
|
D | ScalarEvolution.cpp | 284 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/ |
D | ScalarEvolutionNormalization.cpp | 42 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()
|
D | LoopCacheAnalysis.cpp | 77 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()
|
D | IVUsers.cpp | 63 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()
|
D | ScalarEvolution.cpp | 272 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 …]
|
D | ScalarEvolutionExpander.cpp | 294 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/ |
D | IVUsers.cpp | 56 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()
|
D | ScalarEvolution.cpp | 164 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 …]
|
D | ScalarEvolutionExpander.cpp | 277 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/ |
D | LoopIdiomRecognize.cpp | 119 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 …]
|
D | LoopDataPrefetch.cpp | 94 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()
|
D | IndVarSimplify.cpp | 916 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/ |
D | ScalarEvolutionNormalization.h | 46 class SCEVAddRecExpr; variable 50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
|
D | ScalarEvolution.h | 67 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/ |
D | LoopDataPrefetch.cpp | 76 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()
|
D | LoopIdiomRecognize.cpp | 208 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 …]
|
D | LoopLoadElimination.cpp | 121 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/ |
D | LoopDataPrefetch.cpp | 76 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()
|
D | LoopIdiomRecognize.cpp | 178 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/ |
D | ScalarEvolutionExpressions.h | 280 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()
|
D | ScalarEvolutionExpander.h | 212 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/ |
D | ScalarEvolutionExpander.cpp | 320 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 …]
|