Lines Matching refs:SCEVAddRecExpr
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()
1579 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExpr()
1588 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExpr()
1636 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExpr()
1655 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExpr()
1677 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExpr()
1700 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExpr()
1729 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExpr()
1919 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExpr()
1928 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExpr()
1977 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExpr()
2002 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getSignExtendExpr()
2015 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExpr()
2044 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExpr()
2100 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) { in getAnyExtendExpr()
2575 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getAddExpr()
2579 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr()
2628 OtherIdx < Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2633 cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()->getHeader(), in getAddExpr()
2636 if (AddRecLoop == cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()) { in getAddExpr()
2640 for (; OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2642 const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2704 SCEVAddRecExpr *S = in getOrCreateAddRecExpr()
2705 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in getOrCreateAddRecExpr()
2710 SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L); in getOrCreateAddRecExpr()
2887 } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) { in getMulExpr()
2932 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getMulExpr()
2936 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getMulExpr()
2992 OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
2994 const SCEVAddRecExpr *OtherAddRec = in getMulExpr()
2995 dyn_cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3041 AddRec = dyn_cast<SCEVAddRecExpr>(NewAddRec); in getMulExpr()
3121 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) in getUDivExpr()
3319 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
3359 if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) { in getAddRecExpr()
3784 SCEVExprContains(S, [](const SCEV *S) { return isa<SCEVAddRecExpr>(S); }); in containsAddRecurrence()
4223 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4264 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4381 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4401 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
4433 ScalarEvolution::proveNoSignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoSignedWrapViaInduction()
4482 ScalarEvolution::proveNoUnsignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoUnsignedWrapViaInduction()
4894 if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createAddRecFromPHIWithCastsImpl()
4989 assert(isa<SCEVAddRecExpr>(Rewrite.first) && "Expected an AddRec"); in createAddRecFromPHIWithCasts()
5014 const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const { in areAddRecsEqualWithPreds()
5153 (isa<SCEVAddRecExpr>(Accum) && in createAddRecFromPHI()
5154 cast<SCEVAddRecExpr>(Accum)->getLoop() == L)) { in createAddRecFromPHI()
5281 const auto *ARLoop = cast<SCEVAddRecExpr>(S)->getLoop(); in IsAvailableOnEntry()
5567 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in GetMinTrailingZerosImpl()
5621 void ScalarEvolution::setNoWrapFlags(SCEVAddRecExpr *AddRec, in setNoWrapFlags()
5756 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in getRangeRef()
5994 const SCEVAddRecExpr *AddRec, const SCEV *MaxBECount, unsigned BitWidth, in getRangeForAffineNoSelfWrappingAR()
6225 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in isSCEVExprNeverPoison()
7689 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS)) in computeExitLimitFromICmp()
7769 EvaluateConstantChrecAtConstant(const SCEVAddRecExpr *AddRec, ConstantInt *C, in EvaluateConstantChrecAtConstant()
7826 const SCEVAddRecExpr *IdxExpr = dyn_cast<SCEVAddRecExpr>(Idx); in computeLoadConstantCompareExitLimit()
8608 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in computeSCEVAtScope()
8628 AddRec = dyn_cast<SCEVAddRecExpr>(FoldedRec); in computeSCEVAtScope()
8752 GetQuadraticEquation(const SCEVAddRecExpr *AddRec) { in GetQuadraticEquation()
8852 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
8884 SolveQuadraticAddRecRange(const SCEVAddRecExpr *AddRec, in SolveQuadraticAddRecRange()
9028 const SCEVAddRecExpr *AddRec = in howFarToZero()
9029 dyn_cast<SCEVAddRecExpr>(stripInjectiveFunctions(V)); in howFarToZero()
9243 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) { in SimplifyICmpOperands()
9512 const SCEVAddRecExpr *LHS, in isKnownOnEveryIteration()
9520 ScalarEvolution::getMonotonicPredicateType(const SCEVAddRecExpr *LHS, in getMonotonicPredicateType()
9541 ScalarEvolution::getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, in getMonotonicPredicateTypeImpl()
9598 const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantPredicate()
9652 auto *AR = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantExitCondDuringFirstIterations()
10329 if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) { in computeConstantDifference()
10330 const auto *LAR = cast<SCEVAddRecExpr>(Less); in computeConstantDifference()
10331 const auto *MAR = cast<SCEVAddRecExpr>(More); in computeConstantDifference()
10399 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundLHS)) { in isImpliedCondOperandsViaAddRecStart()
10410 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundRHS)) { in isImpliedCondOperandsViaAddRecStart()
10430 const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS); in isImpliedCondOperandsViaNoOverflow()
10434 const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS); in isImpliedCondOperandsViaNoOverflow()
10556 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge()
10655 const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS); in IsKnownPredicateViaAddRecStart()
10658 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in IsKnownPredicateViaAddRecStart()
11107 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans()
11257 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans()
11329 const SCEV *SCEVAddRecExpr::getNumIterationsInRange(const ConstantRange &Range, in getNumIterationsInRange()
11341 if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted)) in getNumIterationsInRange()
11400 const SCEVAddRecExpr *
11401 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
11421 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, getLoop(), in getPostIncExpr()
11445 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow()
11485 if (isa<SCEVAddRecExpr>(S)) { in follow()
11751 if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr)) in computeAccessFunctions()
11776 if (isa<SCEVAddRecExpr>(R)) { in computeAccessFunctions()
12254 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition()
12366 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeBlockDisposition()
12482 if (auto *AR = dyn_cast<SCEVAddRecExpr>(S)) in getUsedLoops()
12585 auto *AR = dyn_cast<SCEVAddRecExpr>(KV.second); in verify()
12696 const SCEVAddRecExpr *AR, in getWrapPredicate()
12745 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitZeroExtendExpr()
12761 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitSignExtendExpr()
12790 bool addOverflowAssumption(const SCEVAddRecExpr *AR, in addOverflowAssumption()
12812 auto *AR = cast<const SCEVAddRecExpr>(WP->getExpr()); in convertToAddRecWithPreds()
12834 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
12839 auto *AddRec = dyn_cast<SCEVAddRecExpr>(S); in convertSCEVToAddRecWithPredicates()
12882 const SCEVAddRecExpr *AR, in SCEVWrapPredicate()
12914 SCEVWrapPredicate::getImpliedFlags(const SCEVAddRecExpr *AR, in getImpliedFlags()
13046 const auto *AR = cast<SCEVAddRecExpr>(Expr); in setNoOverflow()
13062 const auto *AR = cast<SCEVAddRecExpr>(Expr); in hasNoOverflow()
13075 const SCEVAddRecExpr *PredicatedScalarEvolution::getAsAddRec(Value *V) { in getAsAddRec()
13212 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; } in visitAddRecExpr()