| /openbsd-src/gnu/llvm/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() 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 D | IVUsers.cpp | 59 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() 359 if (const SCEVAddRecExpr *AR = findAddRecForLoop(getExpr(IU), L)) in getStride()
|
| H A D | ScalarEvolutionNormalization.cpp | 43 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr); 48 NormalizeDenormalizeRewriter::visitAddRecExpr(const SCEVAddRecExpr *AR) { in visitAddRecExpr() 100 auto Pred = [&](const SCEVAddRecExpr *AR) { in normalizeForPostIncUse() 114 auto Pred = [&](const SCEVAddRecExpr *AR) { in denormalizeForPostIncUse()
|
| H A D | ScalarEvolution.cpp | 303 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print() 411 return cast<SCEVAddRecExpr>(this)->getType(); in getType() 789 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity() 790 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity() 1034 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration() 1040 SCEVAddRecExpr::evaluateAtIteration(ArrayRef<const SCEV *> Operands, in evaluateAtIteration() 1268 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() 1385 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend() 1417 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend() 1440 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend() [all …]
|
| H A D | DependenceAnalysis.cpp | 964 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() 1111 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() 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() 2319 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV() 2320 dyn_cast<SCEVAddRecExpr>(SrcAddRec->getStart())) { in testRDIV() 2332 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV() [all …]
|
| H A D | ScalarEvolutionAliasAnalysis.cpp | 116 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
|
| H A D | Delinearization.cpp | 58 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow() 98 if (isa<SCEVAddRecExpr>(S)) { in follow() 350 if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr)) in computeAccessFunctions()
|
| H A D | LoopAccessAnalysis.cpp | 213 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrExpr); in insert() 282 auto *SrcAR = dyn_cast<SCEVAddRecExpr>(Src->Expr); in tryToCreateDiffCheck() 283 auto *SinkAR = dyn_cast<SCEVAddRecExpr>(Sink->Expr); in tryToCreateDiffCheck() 748 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in hasComputableBounds() 823 if (isa<SCEVAddRecExpr>(Scev) || L->isLoopInvariant(Ptr) || in findForkedSCEVs() 964 (isa<SCEVAddRecExpr>(get<0>(Scevs[0])) || in findForkedPointer() 966 (isa<SCEVAddRecExpr>(get<0>(Scevs[1])) || in findForkedPointer() 1003 if (!Assume || !isa<SCEVAddRecExpr>(Expr)) in createCheckForAccess() 1322 static bool isNoWrapAddRec(Value *Ptr, const SCEVAddRecExpr *AR, in isNoWrapAddRec() 1361 if (auto *OpAR = dyn_cast<SCEVAddRecExpr>(OpScev)) in isNoWrapAddRec() [all …]
|
| /openbsd-src/gnu/llvm/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() 386 const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in splitLoopBound()
|
| H A D | LoopDataPrefetch.cpp | 76 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 D | LoopIdiomRecognize.cpp | 223 const SCEVAddRecExpr *Ev, const SCEV *BECount, 230 const SCEVAddRecExpr *StoreEv, 231 const SCEVAddRecExpr *LoadEv, 427 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride() 508 const SCEVAddRecExpr *StoreEv = in isLegalStore() 509 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore() 567 const SCEVAddRecExpr *LoadEv = in isLegalStore() 568 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand())); in isLegalStore() 673 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores() 674 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores() [all …]
|
| H A D | LoopLoadElimination.cpp | 118 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne() 119 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne() 431 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers() 522 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop() 525 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop() 587 return !isa<SCEVAddRecExpr>( in processLoop() 589 !isa<SCEVAddRecExpr>( in processLoop()
|
| H A D | LoopStrengthReduce.cpp | 438 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in DoInitialMatch() 495 return isa<SCEVAddRecExpr>(S) && (cast<SCEVAddRecExpr>(S)->getLoop() == &L); in containsAddRecDependentOnLoop() 667 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isAddRecSExtable() 670 return isa<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in isAddRecSExtable() 730 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv() 812 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate() 838 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol() 952 static bool isExistingPhi(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isExistingPhi() 1026 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion() 1266 if (const auto *S = dyn_cast<SCEVAddRecExpr>(Reg)) in getSetupCost() [all …]
|
| H A D | InductiveRangeCheckElimination.cpp | 214 const SCEVAddRecExpr *IndVar, 377 const auto *IndexAddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Index)); in extractRangeChecksFromCond() 806 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in parseLoopStructure() 807 if (isa<SCEVAddRecExpr>(RightSCEV)) { in parseLoopStructure() 817 auto HasNoSignedWrap = [&](const SCEVAddRecExpr *AR) { in parseLoopStructure() 825 const SCEVAddRecExpr *ExtendAfterOp = in parseLoopStructure() 826 dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in parseLoopStructure() 846 const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV); in parseLoopStructure() 1585 const SCEVAddRecExpr *IndVar, in computeSafeIterationSpace() 1940 const SCEVAddRecExpr *IndVar = in run() [all …]
|
| H A D | IndVarSimplify.cpp | 873 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in isLoopCounter() 884 isa<SCEVAddRecExpr>(SE->getSCEV(IncV))); in isLoopCounter() 917 const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi)); in FindLoopCounter() 982 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar)); in genLoopLimit() 1105 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar)); in linearFunctionTestReplace() 1633 if (!LHS->hasOneUse() && !isa<SCEVAddRecExpr>(SE->getSCEV(LHSOp))) in canonicalizeExitCondition() 2142 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ExitCount); in run()
|
| H A D | AlignmentFromAssumptions.cpp | 155 if (const SCEVAddRecExpr *DiffARSCEV = dyn_cast<SCEVAddRecExpr>(DiffSCEV)) { in getNewAlignment()
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/ |
| H A D | ScalarEvolutionNormalization.h | 46 class SCEVAddRecExpr; variable 50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
|
| H A D | ScalarEvolution.h | 62 class SCEVAddRecExpr; variable 384 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE); 387 const SCEVAddRecExpr *AR; 392 const SCEVAddRecExpr *AR, 399 const SCEVAddRecExpr *getExpr() const; 1075 const SCEVAddRecExpr *LHS, const SCEV *RHS); 1158 getMonotonicPredicateType(const SCEVAddRecExpr *LHS, 1257 getWrapPredicate(const SCEVAddRecExpr *AR, 1265 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates( 1282 void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags); [all …]
|
| H A D | ScalarEvolutionExpressions.h | 330 class SCEVAddRecExpr : public SCEVNAryExpr { 335 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, const SCEV *const *O, size_t N, in SCEVAddRecExpr() function 398 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const; 622 return ((SC *)this)->visitAddRecExpr((const SCEVAddRecExpr *)S); in visit() 818 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 930 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr() 939 return SCEVAddRecExpr::evaluateAtIteration(Operands, Map[L], SE); in visitAddRecExpr()
|
| H A D | ScalarEvolutionDivision.h | 51 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
|
| /openbsd-src/gnu/llvm/llvm/lib/Target/PowerPC/ |
| H A D | PPCLoopInstrFormPrep.cpp | 326 rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, 569 const SCEVAddRecExpr *BasePtrSCEV = cast<SCEVAddRecExpr>(BaseSCEV); in rewriteLoadStoresForCommoningChains() 649 PPCLoopInstrFormPrep::rewriteForBase(Loop *L, const SCEVAddRecExpr *BasePtrSCEV, in rewriteForBase() 839 if (cast<SCEVAddRecExpr>(B.BaseSCEV)->getStepRecurrence(*SE) != in addOneCandidate() 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() 1237 const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV); in alreadyPrepared() [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.cpp | 345 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant() 371 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i) in SimplifyAddOperands() 402 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs() 698 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop() 1131 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed() 1132 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed() 1145 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed() 1164 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW() 1178 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW() 1196 SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized, in getAddRecExprPHILiterally() [all …]
|
| H A D | SimplifyIndVar.cpp | 845 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser() 1087 Instruction *cloneIVUser(NarrowIVDefUse DU, const SCEVAddRecExpr *WideAR); 1089 const SCEVAddRecExpr *WideAR); 1094 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>; 1195 const SCEVAddRecExpr *WideAR) { in cloneIVUser() 1247 const SCEVAddRecExpr *WideAR) { in cloneArithmeticIVUser() 1385 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence() 1386 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence() 1415 if (isa<SCEVAddRecExpr>(WideExpr)) in getWideRecurrence() 1428 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence() [all …]
|
| H A D | LoopPeel.cpp | 373 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in countToEliminateCompares() 374 if (isa<SCEVAddRecExpr>(RightSCEV)) { in countToEliminateCompares() 381 const SCEVAddRecExpr *LeftAR = cast<SCEVAddRecExpr>(LeftSCEV); in countToEliminateCompares()
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
| H A D | ScalarEvolutionExpander.h | 302 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc, 474 Value *visitAddRecExpr(const SCEVAddRecExpr *S); 494 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *); 495 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
|