Lines Matching refs:SCEVAddRecExpr

304     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this);  in print()
392 return cast<SCEVAddRecExpr>(this)->getType(); in getType()
728 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
729 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
972 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
978 SCEVAddRecExpr::evaluateAtIteration(ArrayRef<const SCEV *> Operands, in evaluateAtIteration()
1205 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1322 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1357 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1380 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend()
1399 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
1471 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in proveNoWrapByVaryingStart()
1616 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExprImpl()
1670 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExprImpl()
1688 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExprImpl()
1709 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExprImpl()
1731 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExprImpl()
1759 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExprImpl()
1990 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExprImpl()
2045 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExprImpl()
2069 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getSignExtendExprImpl()
2081 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExprImpl()
2111 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExprImpl()
2196 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) { in getAnyExtendExpr()
2871 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getAddExpr()
2875 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr()
2939 OtherIdx < Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2944 cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()->getHeader(), in getAddExpr()
2947 if (AddRecLoop == cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()) { in getAddExpr()
2950 for (; OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2952 const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
3013 SCEVAddRecExpr *S = in getOrCreateAddRecExpr()
3014 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in getOrCreateAddRecExpr()
3019 SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L); in getOrCreateAddRecExpr()
3199 } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) { in getMulExpr()
3255 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getMulExpr()
3259 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getMulExpr()
3324 OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3326 const SCEVAddRecExpr *OtherAddRec = in getMulExpr()
3327 dyn_cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3373 AddRec = dyn_cast<SCEVAddRecExpr>(NewAddRec); in getMulExpr()
3459 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) in getUDivExpr()
3651 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
3693 if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) { in getAddRecExpr()
4065 RetVal visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; } in visitAddRecExpr()
4523 SCEVExprContains(S, [](const SCEV *S) { return isa<SCEVAddRecExpr>(S); }); in containsAddRecurrence()
4645 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(P)) { in removePointerBase()
4846 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in getPointerBase()
4901 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4942 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
5059 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
5079 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
5123 ScalarEvolution::proveNoSignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoSignedWrapViaInduction()
5176 ScalarEvolution::proveNoUnsignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoUnsignedWrapViaInduction()
5601 if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createAddRecFromPHIWithCastsImpl()
5696 assert(isa<SCEVAddRecExpr>(Rewrite.first) && "Expected an AddRec"); in createAddRecFromPHIWithCasts()
5721 const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const { in areAddRecsEqualWithPreds()
5777 if (auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createSimpleAffineAddRec()
5778 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), in createSimpleAffineAddRec()
5868 (isa<SCEVAddRecExpr>(Accum) && in createAddRecFromPHI()
5869 cast<SCEVAddRecExpr>(Accum)->getLoop() == L)) { in createAddRecFromPHI()
5906 if (auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createAddRecFromPHI()
5907 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), in createAddRecFromPHI()
6390 void ScalarEvolution::setNoWrapFlags(SCEVAddRecExpr *AddRec, in setNoWrapFlags()
6707 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(S); in getRangeRef()
7035 const SCEVAddRecExpr *AddRec, const SCEV *MaxBECount, unsigned BitWidth, in getRangeForAffineNoSelfWrappingAR()
7239 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(S)) in getNonTrivialDefiningScopeBound()
8493 } else if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in forgetLcssaPhiWithNewPredecessor()
9118 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS)) in computeExitLimitFromICmp()
9139 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(InnerLHS)) { in computeExitLimitFromICmp()
9147 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), Flags); in computeExitLimitFromICmp()
9255 EvaluateConstantChrecAtConstant(const SCEVAddRecExpr *AddRec, ConstantInt *C, in EvaluateConstantChrecAtConstant()
9812 auto *AddRec = cast<SCEVAddRecExpr>(S); in getWithOperands()
9846 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(V); in computeSCEVAtScope()
9866 AddRec = dyn_cast<SCEVAddRecExpr>(FoldedRec); in computeSCEVAtScope()
10105 GetQuadraticEquation(const SCEVAddRecExpr *AddRec) { in GetQuadraticEquation()
10207 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
10240 SolveQuadraticAddRecRange(const SCEVAddRecExpr *AddRec, in SolveQuadraticAddRecRange()
10386 const SCEVAddRecExpr *AddRec = in howFarToZero()
10387 dyn_cast<SCEVAddRecExpr>(stripInjectiveFunctions(V)); in howFarToZero()
10607 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) { in SimplifyICmpOperands()
10906 const SCEVAddRecExpr *LHS, in isKnownOnEveryIteration()
10914 ScalarEvolution::getMonotonicPredicateType(const SCEVAddRecExpr *LHS, in getMonotonicPredicateType()
10934 ScalarEvolution::getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, in getMonotonicPredicateTypeImpl()
10990 const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantPredicate()
11103 auto *AR = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantExitCondDuringFirstIterationsImpl()
11692 if (!isa<SCEVConstant>(RHS) && !isa<SCEVAddRecExpr>(LHS)) in isImpliedCondBalancedTypes()
11695 if (!isa<SCEVConstant>(FoundRHS) && !isa<SCEVAddRecExpr>(FoundLHS)) in isImpliedCondBalancedTypes()
11875 if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) { in computeConstantDifference()
11876 const auto *LAR = cast<SCEVAddRecExpr>(Less); in computeConstantDifference()
11877 const auto *MAR = cast<SCEVAddRecExpr>(More); in computeConstantDifference()
11945 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundLHS)) { in isImpliedCondOperandsViaAddRecStart()
11956 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundRHS)) { in isImpliedCondOperandsViaAddRecStart()
11976 const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS); in isImpliedCondOperandsViaNoOverflow()
11980 const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS); in isImpliedCondOperandsViaNoOverflow()
12102 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge()
12246 const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS); in IsKnownPredicateViaAddRecStart()
12249 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in IsKnownPredicateViaAddRecStart()
12701 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans()
12704 auto canAssumeNoSelfWrap = [&](const SCEVAddRecExpr *AR) { in howManyLessThans()
12734 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ZExt->getOperand()); in howManyLessThans()
12767 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), Flags); in howManyLessThans()
12776 IV = dyn_cast<SCEVAddRecExpr>(S); in howManyLessThans()
13138 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans()
13229 const SCEV *SCEVAddRecExpr::getNumIterationsInRange(const ConstantRange &Range, in getNumIterationsInRange()
13241 if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted)) in getNumIterationsInRange()
13300 const SCEVAddRecExpr *
13301 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
13321 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, getLoop(), in getPostIncExpr()
13697 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition()
13800 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeBlockDisposition()
13910 if (auto *AR = dyn_cast<SCEVAddRecExpr>(S)) { in forgetMemoizedResultsImpl()
13965 if (auto *AR = dyn_cast<SCEVAddRecExpr>(S)) in getUsedLoops()
14116 if (auto *AR = dyn_cast<SCEVAddRecExpr>(KV.second)) { in verify()
14418 const SCEVAddRecExpr *AR, in getWrapPredicate()
14473 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitZeroExtendExpr()
14489 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitSignExtendExpr()
14518 bool addOverflowAssumption(const SCEVAddRecExpr *AR, in addOverflowAssumption()
14563 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
14568 auto *AddRec = dyn_cast<SCEVAddRecExpr>(S); in convertSCEVToAddRecWithPredicates()
14618 const SCEVAddRecExpr *AR, in SCEVWrapPredicate()
14622 const SCEVAddRecExpr *SCEVWrapPredicate::getExpr() const { return AR; } in getExpr()
14650 SCEVWrapPredicate::getImpliedFlags(const SCEVAddRecExpr *AR, in getImpliedFlags()
14780 const auto *AR = cast<SCEVAddRecExpr>(Expr); in setNoOverflow()
14796 const auto *AR = cast<SCEVAddRecExpr>(Expr); in hasNoOverflow()
14809 const SCEVAddRecExpr *PredicatedScalarEvolution::getAsAddRec(Value *V) { in getAsAddRec()
14949 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; } in visitAddRecExpr()