Lines Matching refs:SCEVAddRecExpr

294     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this);  in print()
402 return cast<SCEVAddRecExpr>(this)->getType(); in getType()
755 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in CompareSCEVComplexity()
756 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in CompareSCEVComplexity()
1042 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1048 SCEVAddRecExpr::evaluateAtIteration(ArrayRef<const SCEV *> Operands, in evaluateAtIteration()
1276 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1393 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1425 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1448 SE->setNoWrapFlags(const_cast<SCEVAddRecExpr *>(PreAR), WrapType); in getPreStartForExtend()
1467 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
1539 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in proveNoWrapByVaryingStart()
1644 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getZeroExtendExpr()
1653 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExpr()
1703 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExpr()
1721 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExpr()
1742 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getZeroExtendExpr()
1764 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getZeroExtendExpr()
1792 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNUW); in getZeroExtendExpr()
1984 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) in getSignExtendExpr()
1993 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExpr()
2044 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExpr()
2068 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNW); in getSignExtendExpr()
2080 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), NewFlags); in getSignExtendExpr()
2110 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), SCEV::FlagNSW); in getSignExtendExpr()
2183 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) { in getAnyExtendExpr()
2818 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getAddExpr()
2822 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr()
2886 OtherIdx < Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2891 cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()->getHeader(), in getAddExpr()
2894 if (AddRecLoop == cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()) { in getAddExpr()
2897 for (; OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2899 const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getAddExpr()
2961 SCEVAddRecExpr *S = in getOrCreateAddRecExpr()
2962 static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)); in getOrCreateAddRecExpr()
2967 SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L); in getOrCreateAddRecExpr()
3147 } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) { in getMulExpr()
3192 for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) { in getMulExpr()
3196 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getMulExpr()
3252 OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3254 const SCEVAddRecExpr *OtherAddRec = in getMulExpr()
3255 dyn_cast<SCEVAddRecExpr>(Ops[OtherIdx]); in getMulExpr()
3301 AddRec = dyn_cast<SCEVAddRecExpr>(NewAddRec); in getMulExpr()
3387 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) in getUDivExpr()
3579 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
3621 if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) { in getAddRecExpr()
3989 RetVal visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; } in visitAddRecExpr()
4357 SCEVExprContains(S, [](const SCEV *S) { return isa<SCEVAddRecExpr>(S); }); in containsAddRecurrence()
4486 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(P)) { in removePointerBase()
4687 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in getPointerBase()
4742 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4783 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4900 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
4920 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
4952 ScalarEvolution::proveNoSignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoSignedWrapViaInduction()
5001 ScalarEvolution::proveNoUnsignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoUnsignedWrapViaInduction()
5412 if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) { in createAddRecFromPHIWithCastsImpl()
5507 assert(isa<SCEVAddRecExpr>(Rewrite.first) && "Expected an AddRec"); in createAddRecFromPHIWithCasts()
5532 const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const { in areAddRecsEqualWithPreds()
5673 (isa<SCEVAddRecExpr>(Accum) && in createAddRecFromPHI()
5674 cast<SCEVAddRecExpr>(Accum)->getLoop() == L)) { in createAddRecFromPHI()
5802 const auto *ARLoop = cast<SCEVAddRecExpr>(S)->getLoop(); in IsAvailableOnEntry()
6212 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in GetMinTrailingZerosImpl()
6266 void ScalarEvolution::setNoWrapFlags(SCEVAddRecExpr *AddRec, in setNoWrapFlags()
6516 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in getRangeRef()
6770 const SCEVAddRecExpr *AddRec, const SCEV *MaxBECount, unsigned BitWidth, in getRangeForAffineNoSelfWrappingAR()
6970 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(S)) in getNonTrivialDefiningScopeBound()
7989 auto *AddRec = dyn_cast<SCEVAddRecExpr>(getSCEV(GEP)); in getConstantMaxTripCountFromArray()
8891 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS)) in computeExitLimitFromICmp()
8912 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(InnerLHS)) { in computeExitLimitFromICmp()
8920 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), Flags); in computeExitLimitFromICmp()
9008 EvaluateConstantChrecAtConstant(const SCEVAddRecExpr *AddRec, ConstantInt *C, in EvaluateConstantChrecAtConstant()
9736 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) { in computeSCEVAtScope()
9756 AddRec = dyn_cast<SCEVAddRecExpr>(FoldedRec); in computeSCEVAtScope()
9859 GetQuadraticEquation(const SCEVAddRecExpr *AddRec) { in GetQuadraticEquation()
9959 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
9991 SolveQuadraticAddRecRange(const SCEVAddRecExpr *AddRec, in SolveQuadraticAddRecRange()
10135 const SCEVAddRecExpr *AddRec = in howFarToZero()
10136 dyn_cast<SCEVAddRecExpr>(stripInjectiveFunctions(V)); in howFarToZero()
10353 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) { in SimplifyICmpOperands()
10655 const SCEVAddRecExpr *LHS, in isKnownOnEveryIteration()
10663 ScalarEvolution::getMonotonicPredicateType(const SCEVAddRecExpr *LHS, in getMonotonicPredicateType()
10684 ScalarEvolution::getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, in getMonotonicPredicateTypeImpl()
10741 const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantPredicate()
10795 auto *AR = dyn_cast<SCEVAddRecExpr>(LHS); in getLoopInvariantExitCondDuringFirstIterations()
11384 if (!isa<SCEVConstant>(RHS) && !isa<SCEVAddRecExpr>(LHS)) in isImpliedCondBalancedTypes()
11387 if (!isa<SCEVConstant>(FoundRHS) && !isa<SCEVAddRecExpr>(FoundLHS)) in isImpliedCondBalancedTypes()
11564 if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) { in computeConstantDifference()
11565 const auto *LAR = cast<SCEVAddRecExpr>(Less); in computeConstantDifference()
11566 const auto *MAR = cast<SCEVAddRecExpr>(More); in computeConstantDifference()
11634 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundLHS)) { in isImpliedCondOperandsViaAddRecStart()
11645 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundRHS)) { in isImpliedCondOperandsViaAddRecStart()
11665 const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS); in isImpliedCondOperandsViaNoOverflow()
11669 const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS); in isImpliedCondOperandsViaNoOverflow()
11791 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in isImpliedViaMerge()
11935 const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS); in IsKnownPredicateViaAddRecStart()
11938 const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS); in IsKnownPredicateViaAddRecStart()
12389 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyLessThans()
12392 auto canAssumeNoSelfWrap = [&](const SCEVAddRecExpr *AR) { in howManyLessThans()
12422 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ZExt->getOperand()); in howManyLessThans()
12450 setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), Flags); in howManyLessThans()
12459 IV = dyn_cast<SCEVAddRecExpr>(S); in howManyLessThans()
12822 const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS); in howManyGreaterThans()
12909 const SCEV *SCEVAddRecExpr::getNumIterationsInRange(const ConstantRange &Range, in getNumIterationsInRange()
12921 if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted)) in getNumIterationsInRange()
12980 const SCEVAddRecExpr *
12981 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
13001 return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, getLoop(), in getPostIncExpr()
13359 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeLoopDisposition()
13472 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S); in computeBlockDisposition()
13632 if (auto *AR = dyn_cast<SCEVAddRecExpr>(S)) in getUsedLoops()
13783 if (auto *AR = dyn_cast<SCEVAddRecExpr>(KV.second)) { in verify()
14012 const SCEVAddRecExpr *AR, in getWrapPredicate()
14067 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitZeroExtendExpr()
14083 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand); in visitSignExtendExpr()
14112 bool addOverflowAssumption(const SCEVAddRecExpr *AR, in addOverflowAssumption()
14156 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
14161 auto *AddRec = dyn_cast<SCEVAddRecExpr>(S); in convertSCEVToAddRecWithPredicates()
14212 const SCEVAddRecExpr *AR, in SCEVWrapPredicate()
14216 const SCEVAddRecExpr *SCEVWrapPredicate::getExpr() const { return AR; } in getExpr()
14244 SCEVWrapPredicate::getImpliedFlags(const SCEVAddRecExpr *AR, in getImpliedFlags()
14374 const auto *AR = cast<SCEVAddRecExpr>(Expr); in setNoOverflow()
14390 const auto *AR = cast<SCEVAddRecExpr>(Expr); in hasNoOverflow()
14403 const SCEVAddRecExpr *PredicatedScalarEvolution::getAsAddRec(Value *V) { in getAsAddRec()
14548 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; } in visitAddRecExpr()