Lines Matching refs:SCEVAddRecExpr
257 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print()
678 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
679 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
940 void visitAddRecExpr(const SCEVAddRecExpr *Numerator) { in visitAddRecExpr()
1202 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1285 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1397 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1429 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1452 const_cast<SCEVAddRecExpr *>(PreAR)->setNoWrapFlags(WrapType); in getPreStartForExtend()
1471 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
1543 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in proveNoWrapByVaryingStart()
1647 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExpr()
1656 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(NewFlags); in getZeroExtendExpr()
1705 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNUW); in getZeroExtendExpr()
1724 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNW); in getZeroExtendExpr()
1756 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNUW); in getZeroExtendExpr()
1772 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNW); in getZeroExtendExpr()
1801 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNUW); in getZeroExtendExpr()
1991 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExpr()
2000 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(NewFlags); in getSignExtendExpr()
2049 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNSW); in getSignExtendExpr()
2074 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNW); in getSignExtendExpr()
2108 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNSW); in getSignExtendExpr()
2133 const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNSW); in getSignExtendExpr()
2189 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) { in getAnyExtendExpr()
2653 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getAddExpr()
2657 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr()
2700 OtherIdx < Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2705 cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()->getHeader(), in getAddExpr()
2708 if (AddRecLoop == cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()) { in getAddExpr()
2712 for (; OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2714 const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2776 SCEVAddRecExpr *S = in getOrCreateAddRecExpr()
2777 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in getOrCreateAddRecExpr()
2782 SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L); in getOrCreateAddRecExpr()
2943 } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) { in getMulExpr()
2991 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getMulExpr()
2995 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getMulExpr()
3050 OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3052 const SCEVAddRecExpr *OtherAddRec = in getMulExpr()
3053 dyn_cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3099 AddRec = dyn_cast<SCEVAddRecExpr>(NewAddRec); in getMulExpr()
3171 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) in getUDivExpr()
3356 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
3396 if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) { in getAddRecExpr()
3831 bool FoundAddRec = SCEVExprContains(S, isa<SCEVAddRecExpr, const SCEV *>); in containsAddRecurrence()
4239 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4280 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4397 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4417 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
4830 if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createAddRecFromPHIWithCastsImpl()
4925 assert(isa<SCEVAddRecExpr>(Rewrite.first) && "Expected an AddRec"); in createAddRecFromPHIWithCasts()
4950 const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const { in areAddRecsEqualWithPreds()
5089 (isa<SCEVAddRecExpr>(Accum) && in createAddRecFromPHI()
5090 cast<SCEVAddRecExpr>(Accum)->getLoop() == L)) { in createAddRecFromPHI()
5208 const auto *ARLoop = cast<SCEVAddRecExpr>(S)->getLoop(); in IsAvailableOnEntry()
5491 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in GetMinTrailingZerosImpl()
5633 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in getRangeRef()
6005 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in isSCEVExprNeverPoison()
6301 if (const SCEVAddRecExpr *NewAR = dyn_cast<SCEVAddRecExpr>(S)) { in createSCEV()
6302 const SCEVAddRecExpr *OldAR = cast<SCEVAddRecExpr>(LHS); in createSCEV()
6303 const_cast<SCEVAddRecExpr *>(NewAR)->setNoWrapFlags( in createSCEV()
7339 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS)) in computeExitLimitFromICmp()
7419 EvaluateConstantChrecAtConstant(const SCEVAddRecExpr *AddRec, ConstantInt *C, in EvaluateConstantChrecAtConstant()
7476 const SCEVAddRecExpr *IdxExpr = dyn_cast<SCEVAddRecExpr>(Idx); in computeLoadConstantCompareExitLimit()
8225 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in computeSCEVAtScope()
8245 AddRec = dyn_cast<SCEVAddRecExpr>(FoldedRec); in computeSCEVAtScope()
8362 GetQuadraticEquation(const SCEVAddRecExpr *AddRec) { in GetQuadraticEquation()
8462 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
8494 SolveQuadraticAddRecRange(const SCEVAddRecExpr *AddRec, in SolveQuadraticAddRecRange()
8638 const SCEVAddRecExpr *AddRec = in howFarToZero()
8639 dyn_cast<SCEVAddRecExpr>(stripInjectiveFunctions(V)); in howFarToZero()
8849 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) { in SimplifyICmpOperands()
9108 const SCEVAddRecExpr *LHS, in isKnownOnEveryIteration()
9115 bool ScalarEvolution::isMonotonicPredicate(const SCEVAddRecExpr *LHS, in isMonotonicPredicate()
9136 bool ScalarEvolution::isMonotonicPredicateImpl(const SCEVAddRecExpr *LHS, in isMonotonicPredicateImpl()
9205 const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS); in isLoopInvariantPredicate()
9793 if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) { in computeConstantDifference()
9794 const auto *LAR = cast<SCEVAddRecExpr>(Less); in computeConstantDifference()
9795 const auto *MAR = cast<SCEVAddRecExpr>(More); in computeConstantDifference()
9849 const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS); in isImpliedCondOperandsViaNoOverflow()
9853 const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS); in isImpliedCondOperandsViaNoOverflow()
9975 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge()
10095 const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS); in IsKnownPredicateViaAddRecStart()
10098 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in IsKnownPredicateViaAddRecStart()
10496 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans()
10640 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans()
10708 const SCEV *SCEVAddRecExpr::getNumIterationsInRange(const ConstantRange &Range, in getNumIterationsInRange()
10720 if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted)) in getNumIterationsInRange()
10779 const SCEVAddRecExpr *
10780 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
10800 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, getLoop(), in getPostIncExpr()
10826 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in follow()
10866 if (isa<SCEVAddRecExpr>(S)) { in follow()
11131 if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr)) in computeAccessFunctions()
11156 if (isa<SCEVAddRecExpr>(R)) { in computeAccessFunctions()
11582 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition()
11691 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeBlockDisposition()
11805 if (auto *AR = dyn_cast<SCEVAddRecExpr>(S)) in getUsedLoops()
11989 const SCEVAddRecExpr *AR, in getWrapPredicate()
12038 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitZeroExtendExpr()
12054 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitSignExtendExpr()
12083 bool addOverflowAssumption(const SCEVAddRecExpr *AR, in addOverflowAssumption()
12105 auto *AR = cast<const SCEVAddRecExpr>(WP->getExpr()); in convertToAddRecWithPreds()
12127 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
12132 auto *AddRec = dyn_cast<SCEVAddRecExpr>(S); in convertSCEVToAddRecWithPredicates()
12175 const SCEVAddRecExpr *AR, in SCEVWrapPredicate()
12207 SCEVWrapPredicate::getImpliedFlags(const SCEVAddRecExpr *AR, in getImpliedFlags()
12339 const auto *AR = cast<SCEVAddRecExpr>(Expr); in setNoOverflow()
12355 const auto *AR = cast<SCEVAddRecExpr>(Expr); in hasNoOverflow()
12368 const SCEVAddRecExpr *PredicatedScalarEvolution::getAsAddRec(Value *V) { in getAsAddRec()