Home
last modified time | relevance | path

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

12

/netbsd-src/external/apache2/llvm/dist/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()
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()
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()
740 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
741 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
1026 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1248 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1365 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1397 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1420 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend()
1439 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
1511 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in proveNoWrapByVaryingStart()
[all …]
H A DDependenceAnalysis.cpp891 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript()
1026 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan()
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()
2234 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV()
2235 dyn_cast<SCEVAddRecExpr>(SrcAddRec->getStart())) { in testRDIV()
2247 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV()
[all …]
H A DScalarEvolutionAliasAnalysis.cpp104 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
H A DLoopAccessAnalysis.cpp205 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Sc); in insert()
632 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in hasComputableBounds()
673 if (!Assume || !isa<SCEVAddRecExpr>(Expr)) in createCheckForAccess()
970 static bool isNoWrapAddRec(Value *Ptr, const SCEVAddRecExpr *AR, in isNoWrapAddRec()
1009 if (auto *OpAR = dyn_cast<SCEVAddRecExpr>(OpScev)) in isNoWrapAddRec()
1033 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in getPtrStride()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/
H A 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()
H A DLoopIdiomRecognize.cpp223 const SCEVAddRecExpr *Ev, const SCEV *BECount,
230 const SCEVAddRecExpr *StoreEv,
231 const SCEVAddRecExpr *LoadEv,
425 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride()
506 const SCEVAddRecExpr *StoreEv = in isLegalStore()
507 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore()
565 const SCEVAddRecExpr *LoadEv = in isLegalStore()
566 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand())); in isLegalStore()
671 const SCEVAddRecExpr *FirstStoreEv = in processLoopStores()
672 cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr)); in processLoopStores()
[all …]
H A DLoopLoadElimination.cpp120 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne()
121 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne()
431 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers()
508 assert(isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Load->getPointerOperand())) && in processLoop()
511 isa<SCEVAddRecExpr>(PSE.getSCEV(Cand.Store->getPointerOperand())) && in processLoop()
573 return !isa<SCEVAddRecExpr>( in processLoop()
575 !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()
499 return isa<const SCEVAddRecExpr>(S) && in isCanonical()
500 (cast<SCEVAddRecExpr>(S)->getLoop() == &L); in isCanonical()
527 const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg); in canonicalize()
530 return isa<const SCEVAddRecExpr>(S) && in canonicalize()
531 (cast<SCEVAddRecExpr>(S)->getLoop() == &L); in canonicalize()
643 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isAddRecSExtable()
646 return isa<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in isAddRecSExtable()
703 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv()
[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.cpp155 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()
H A DLoopRerollPass.cpp593 if (const SCEVAddRecExpr *PHISCEV = in collectPossibleIVs()
594 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(&*I))) { in collectPossibleIVs()
907 const auto *ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(DRS.BaseInst)); in validateRootSet()
932 const auto *IVU_ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(IVU)); in findRootsBase()
1450 const SCEVAddRecExpr *IVSCEV = in replace()
1451 cast<SCEVAddRecExpr>(SE->getSCEV(DRS.BaseInst)); in replace()
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
H A DScalarEvolution.h67 class SCEVAddRecExpr; variable
367 getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE);
370 const SCEVAddRecExpr *AR;
375 const SCEVAddRecExpr *AR,
962 const SCEVAddRecExpr *LHS, const SCEV *RHS);
979 getMonotonicPredicateType(const SCEVAddRecExpr *LHS,
1167 getWrapPredicate(const SCEVAddRecExpr *AR,
1175 const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates(
1191 void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags);
1561 ConstantRange getRangeForAffineNoSelfWrappingAR(const SCEVAddRecExpr *AddRec,
[all …]
H A DScalarEvolutionNormalization.h46 class SCEVAddRecExpr; variable
50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
H A DScalarEvolutionExpressions.h352 class SCEVAddRecExpr : public SCEVNAryExpr {
357 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, in SCEVAddRecExpr() function
415 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const;
588 return ((SC*)this)->visitAddRecExpr((const SCEVAddRecExpr*)S); in visit()
788 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
892 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
903 const SCEVAddRecExpr *Rec = cast<SCEVAddRecExpr>(Res); in visitAddRecExpr()
H A DScalarEvolutionDivision.h50 void visitAddRecExpr(const SCEVAddRecExpr *Numerator);
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
H A DScalarEvolutionExpander.cpp337 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant()
363 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i) in SimplifyAddOperands()
394 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs()
679 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop()
921 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) { in ExposePointerBase()
1137 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed()
1138 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed()
1147 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed()
1167 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW()
1181 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW()
[all …]
H A DSimplifyIndVar.cpp861 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser()
1094 Instruction *cloneIVUser(NarrowIVDefUse DU, const SCEVAddRecExpr *WideAR);
1096 const SCEVAddRecExpr *WideAR);
1101 using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>;
1202 const SCEVAddRecExpr *WideAR) { in cloneIVUser()
1254 const SCEVAddRecExpr *WideAR) { in cloneArithmeticIVUser()
1392 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence()
1393 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence()
1422 if (isa<SCEVAddRecExpr>(WideExpr)) in getWideRecurrence()
1435 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence()
[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()
/netbsd-src/external/apache2/llvm/dist/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()
847 const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/
H A DScalarEvolutionExpander.h292 Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc,
462 Value *visitAddRecExpr(const SCEVAddRecExpr *S);
480 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *);
481 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,

12