Lines Matching refs:SCEVAddRecExpr

285     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this);  in print()
389 return cast<SCEVAddRecExpr>(this)->getType(); in getType()
739 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
740 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
1025 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1031 SCEVAddRecExpr::evaluateAtIteration(ArrayRef<const SCEV *> Operands, in evaluateAtIteration()
1259 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1376 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1408 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1431 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend()
1450 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
1522 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in proveNoWrapByVaryingStart()
1627 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExpr()
1636 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExpr()
1684 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExpr()
1703 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExpr()
1725 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExpr()
1748 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExpr()
1777 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExpr()
1968 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExpr()
1977 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExpr()
2026 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExpr()
2051 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getSignExtendExpr()
2064 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExpr()
2093 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExpr()
2149 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) { in getAnyExtendExpr()
2753 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getAddExpr()
2757 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr()
2805 OtherIdx < Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2810 cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()->getHeader(), in getAddExpr()
2813 if (AddRecLoop == cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()) { in getAddExpr()
2816 for (; OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2818 const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2880 SCEVAddRecExpr *S = in getOrCreateAddRecExpr()
2881 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in getOrCreateAddRecExpr()
2886 SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L); in getOrCreateAddRecExpr()
3064 } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) { in getMulExpr()
3109 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getMulExpr()
3113 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getMulExpr()
3169 OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3171 const SCEVAddRecExpr *OtherAddRec = in getMulExpr()
3172 dyn_cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3218 AddRec = dyn_cast<SCEVAddRecExpr>(NewAddRec); in getMulExpr()
3304 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) in getUDivExpr()
3500 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
3542 if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) { in getAddRecExpr()
3965 SCEVExprContains(S, [](const SCEV *S) { return isa<SCEVAddRecExpr>(S); }); in containsAddRecurrence()
4153 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(P)) { in removePointerBase()
4356 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in getPointerBase()
4450 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4491 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4608 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4628 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
4660 ScalarEvolution::proveNoSignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoSignedWrapViaInduction()
4709 ScalarEvolution::proveNoUnsignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoUnsignedWrapViaInduction()
5117 if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createAddRecFromPHIWithCastsImpl()
5212 assert(isa<SCEVAddRecExpr>(Rewrite.first) && "Expected an AddRec"); in createAddRecFromPHIWithCasts()
5237 const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const { in areAddRecsEqualWithPreds()
5376 (isa<SCEVAddRecExpr>(Accum) && in createAddRecFromPHI()
5377 cast<SCEVAddRecExpr>(Accum)->getLoop() == L)) { in createAddRecFromPHI()
5504 const auto *ARLoop = cast<SCEVAddRecExpr>(S)->getLoop(); in IsAvailableOnEntry()
5799 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in GetMinTrailingZerosImpl()
5853 void ScalarEvolution::setNoWrapFlags(SCEVAddRecExpr *AddRec, in setNoWrapFlags()
6107 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in getRangeRef()
6354 const SCEVAddRecExpr *AddRec, const SCEV *MaxBECount, unsigned BitWidth, in getRangeForAffineNoSelfWrappingAR()
6588 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in isSCEVExprNeverPoison()
8063 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS)) in computeExitLimitFromICmp()
8163 EvaluateConstantChrecAtConstant(const SCEVAddRecExpr *AddRec, ConstantInt *C, in EvaluateConstantChrecAtConstant()
8220 const SCEVAddRecExpr *IdxExpr = dyn_cast<SCEVAddRecExpr>(Idx); in computeLoadConstantCompareExitLimit()
9002 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in computeSCEVAtScope()
9022 AddRec = dyn_cast<SCEVAddRecExpr>(FoldedRec); in computeSCEVAtScope()
9146 GetQuadraticEquation(const SCEVAddRecExpr *AddRec) { in GetQuadraticEquation()
9246 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
9278 SolveQuadraticAddRecRange(const SCEVAddRecExpr *AddRec, in SolveQuadraticAddRecRange()
9422 const SCEVAddRecExpr *AddRec = in howFarToZero()
9423 dyn_cast<SCEVAddRecExpr>(stripInjectiveFunctions(V)); in howFarToZero()
9642 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) { in SimplifyICmpOperands()
9938 const SCEVAddRecExpr *LHS, in isKnownOnEveryIteration()
9946 ScalarEvolution::getMonotonicPredicateType(const SCEVAddRecExpr *LHS, in getMonotonicPredicateType()
9967 ScalarEvolution::getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, in getMonotonicPredicateTypeImpl()
10024 const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantPredicate()
10078 auto *AR = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantExitCondDuringFirstIterations()
10664 if (!isa<SCEVConstant>(RHS) && !isa<SCEVAddRecExpr>(LHS)) in isImpliedCondBalancedTypes()
10667 if (!isa<SCEVConstant>(FoundRHS) && !isa<SCEVAddRecExpr>(FoundLHS)) in isImpliedCondBalancedTypes()
10803 if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) { in computeConstantDifference()
10804 const auto *LAR = cast<SCEVAddRecExpr>(Less); in computeConstantDifference()
10805 const auto *MAR = cast<SCEVAddRecExpr>(More); in computeConstantDifference()
10873 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundLHS)) { in isImpliedCondOperandsViaAddRecStart()
10884 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundRHS)) { in isImpliedCondOperandsViaAddRecStart()
10904 const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS); in isImpliedCondOperandsViaNoOverflow()
10908 const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS); in isImpliedCondOperandsViaNoOverflow()
11030 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge()
11129 const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS); in IsKnownPredicateViaAddRecStart()
11132 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in IsKnownPredicateViaAddRecStart()
11576 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans()
11960 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans()
12047 const SCEV *SCEVAddRecExpr::getNumIterationsInRange(const ConstantRange &Range, in getNumIterationsInRange()
12059 if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted)) in getNumIterationsInRange()
12118 const SCEVAddRecExpr *
12119 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
12139 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, getLoop(), in getPostIncExpr()
12163 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow()
12203 if (isa<SCEVAddRecExpr>(S)) { in follow()
12467 if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr)) in computeAccessFunctions()
12492 if (isa<SCEVAddRecExpr>(R)) { in computeAccessFunctions()
12957 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition()
13069 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeBlockDisposition()
13176 if (auto *AR = dyn_cast<SCEVAddRecExpr>(S)) in getUsedLoops()
13279 auto *AR = dyn_cast<SCEVAddRecExpr>(KV.second); in verify()
13390 const SCEVAddRecExpr *AR, in getWrapPredicate()
13439 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitZeroExtendExpr()
13455 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitSignExtendExpr()
13484 bool addOverflowAssumption(const SCEVAddRecExpr *AR, in addOverflowAssumption()
13506 auto *AR = cast<const SCEVAddRecExpr>(WP->getExpr()); in convertToAddRecWithPreds()
13528 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
13533 auto *AddRec = dyn_cast<SCEVAddRecExpr>(S); in convertSCEVToAddRecWithPredicates()
13576 const SCEVAddRecExpr *AR, in SCEVWrapPredicate()
13608 SCEVWrapPredicate::getImpliedFlags(const SCEVAddRecExpr *AR, in getImpliedFlags()
13740 const auto *AR = cast<SCEVAddRecExpr>(Expr); in setNoOverflow()
13756 const auto *AR = cast<SCEVAddRecExpr>(Expr); in hasNoOverflow()
13769 const SCEVAddRecExpr *PredicatedScalarEvolution::getAsAddRec(Value *V) { in getAsAddRec()
13911 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; } in visitAddRecExpr()