Lines Matching refs:Step

1305 static const SCEV *getSignedOverflowLimitForStep(const SCEV *Step,  in getSignedOverflowLimitForStep()  argument
1308 unsigned BitWidth = SE->getTypeSizeInBits(Step->getType()); in getSignedOverflowLimitForStep()
1309 if (SE->isKnownPositive(Step)) { in getSignedOverflowLimitForStep()
1312 SE->getSignedRangeMax(Step)); in getSignedOverflowLimitForStep()
1314 if (SE->isKnownNegative(Step)) { in getSignedOverflowLimitForStep()
1317 SE->getSignedRangeMin(Step)); in getSignedOverflowLimitForStep()
1325 static const SCEV *getUnsignedOverflowLimitForStep(const SCEV *Step, in getUnsignedOverflowLimitForStep() argument
1328 unsigned BitWidth = SE->getTypeSizeInBits(Step->getType()); in getUnsignedOverflowLimitForStep()
1332 SE->getUnsignedRangeMax(Step)); in getUnsignedOverflowLimitForStep()
1361 static const SCEV *getOverflowLimitForStep(const SCEV *Step, in getOverflowLimitForStep()
1364 return getSignedOverflowLimitForStep(Step, Pred, SE); in getOverflowLimitForStep()
1377 static const SCEV *getOverflowLimitForStep(const SCEV *Step, in getOverflowLimitForStep()
1380 return getUnsignedOverflowLimitForStep(Step, Pred, SE); in getOverflowLimitForStep()
1404 const SCEV *Step = AR->getStepRecurrence(*SE); in getPreStartForExtend() local
1416 if (Op != Step) in getPreStartForExtend()
1430 SE->getAddRecExpr(PreStart, Step, L, SCEV::FlagAnyWrap)); in getPreStartForExtend()
1446 (SE->*GetExtendExpr)(Step, WideTy, Depth)); in getPreStartForExtend()
1460 ExtendOpTraits<ExtendOpTy>::getOverflowLimitForStep(Step, &Pred, SE); in getPreStartForExtend()
1519 const SCEV *Step, in proveNoWrapByVaryingStart() argument
1539 ID.AddPointer(Step); in proveNoWrapByVaryingStart()
1588 const SCEV *Step) { in extractConstantWithoutWrapping() argument
1590 const uint32_t TZ = SE.GetMinTrailingZeros(Step); in extractConstantWithoutWrapping()
1650 const SCEV *Step = AR->getStepRecurrence(*this); in getZeroExtendExpr() local
1664 getZeroExtendExpr(Step, Ty, Depth + 1), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1688 const SCEV *ZMul = getMulExpr(CastedMaxBECount, Step, in getZeroExtendExpr()
1700 getZeroExtendExpr(Step, WideTy, Depth + 1), in getZeroExtendExpr()
1710 getZeroExtendExpr(Step, Ty, Depth + 1), L, in getZeroExtendExpr()
1718 getSignExtendExpr(Step, WideTy, Depth + 1), in getZeroExtendExpr()
1729 getSignExtendExpr(Step, Ty, Depth + 1), L, in getZeroExtendExpr()
1749 if (isKnownPositive(Step)) { in getZeroExtendExpr()
1751 getUnsignedRangeMax(Step)); in getZeroExtendExpr()
1761 getZeroExtendExpr(Step, Ty, Depth + 1), L, in getZeroExtendExpr()
1764 } else if (isKnownNegative(Step)) { in getZeroExtendExpr()
1766 getSignedRangeMin(Step)); in getZeroExtendExpr()
1777 getSignExtendExpr(Step, Ty, Depth + 1), L, in getZeroExtendExpr()
1788 const APInt &D = extractConstantWithoutWrapping(*this, C, Step); in getZeroExtendExpr()
1792 getAddRecExpr(getConstant(C - D), Step, L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1800 if (proveNoWrapByVaryingStart<SCEVZeroExtendExpr>(Start, Step, L)) { in getZeroExtendExpr()
1804 getZeroExtendExpr(Step, Ty, Depth + 1), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1994 const SCEV *Step = AR->getStepRecurrence(*this); in getSignExtendExpr() local
2008 getSignExtendExpr(Step, Ty, Depth + 1), L, SCEV::FlagNSW); in getSignExtendExpr()
2032 const SCEV *SMul = getMulExpr(CastedMaxBECount, Step, in getSignExtendExpr()
2044 getSignExtendExpr(Step, WideTy, Depth + 1), in getSignExtendExpr()
2054 getSignExtendExpr(Step, Ty, Depth + 1), L, in getSignExtendExpr()
2062 getZeroExtendExpr(Step, WideTy, Depth + 1), in getSignExtendExpr()
2080 getZeroExtendExpr(Step, Ty, Depth + 1), L, in getSignExtendExpr()
2103 getSignedOverflowLimitForStep(Step, &Pred, this); in getSignExtendExpr()
2111 getSignExtendExpr(Step, Ty, Depth + 1), L, AR->getNoWrapFlags()); in getSignExtendExpr()
2120 const APInt &D = extractConstantWithoutWrapping(*this, C, Step); in getSignExtendExpr()
2124 getAddRecExpr(getConstant(C - D), Step, L, AR->getNoWrapFlags()); in getSignExtendExpr()
2132 if (proveNoWrapByVaryingStart<SCEVSignExtendExpr>(Start, Step, L)) { in getSignExtendExpr()
2136 getSignExtendExpr(Step, Ty, Depth + 1), L, AR->getNoWrapFlags()); in getSignExtendExpr()
3172 if (const SCEVConstant *Step = in getUDivExpr() local
3175 const APInt &StepInt = Step->getAPInt(); in getUDivExpr()
3180 getZeroExtendExpr(Step, ExtTy), in getUDivExpr()
3194 getZeroExtendExpr(Step, ExtTy), in getUDivExpr()
3199 LHS = getAddRecExpr(getConstant(StartInt - StartRem), Step, in getUDivExpr()
3351 const SCEV *ScalarEvolution::getAddRecExpr(const SCEV *Start, const SCEV *Step, in getAddRecExpr() argument
3356 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
3362 Operands.push_back(Step); in getAddRecExpr()
5741 static ConstantRange getRangeForAffineARHelper(APInt Step, in getRangeForAffineARHelper() argument
5747 if (Step == 0 || MaxBECount == 0) in getRangeForAffineARHelper()
5758 bool Descending = Signed && Step.isNegative(); in getRangeForAffineARHelper()
5765 Step = Step.abs(); in getRangeForAffineARHelper()
5769 if (APInt::getMaxValue(StartRange.getBitWidth()).udiv(Step).ult(MaxBECount)) in getRangeForAffineARHelper()
5774 APInt Offset = Step * MaxBECount; in getRangeForAffineARHelper()
5806 const SCEV *Step, in getRangeForAffineAR() argument
5818 ConstantRange StepSRange = getSignedRange(Step); in getRangeForAffineAR()
5831 getUnsignedRangeMax(Step), getUnsignedRange(Start), in getRangeForAffineAR()
5839 const SCEV *Step, in getRangeViaFactoring() argument
5921 SelectPattern StepPattern(*this, BitWidth, Step); in getRangeViaFactoring()
8680 const SCEV *Step = getSCEVAtScope(AddRec->getOperand(1), L->getParentLoop()); in howFarToZero() local
8688 const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step); in howFarToZero()
8733 getUDivExpr(Distance, CountDown ? getNegativeSCEV(Step) : Step); in howFarToZero()
9171 const SCEV *Step = LHS->getStepRecurrence(*this); in isMonotonicPredicateImpl() local
9173 if (isKnownNonNegative(Step)) { in isMonotonicPredicateImpl()
9178 if (isKnownNonPositive(Step)) { in isMonotonicPredicateImpl()
10439 const SCEV *ScalarEvolution::computeBECount(const SCEV *Delta, const SCEV *Step, in computeBECount() argument
10441 const SCEV *One = getOne(Step->getType()); in computeBECount()
10442 Delta = Equality ? getAddExpr(Delta, Step) in computeBECount()
10443 : getAddExpr(Delta, getMinusSCEV(Step, One)); in computeBECount()
10444 return getUDivExpr(Delta, Step); in computeBECount()
10971 const SCEV *Step = Terms[Last]; in findArrayDimensionsRec() local
10975 if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(Step)) { in findArrayDimensionsRec()
10981 Step = SE.getMulExpr(Qs); in findArrayDimensionsRec()
10984 Sizes.push_back(Step); in findArrayDimensionsRec()
10991 SCEVDivision::divide(SE, Term, Step, &Q, &R); in findArrayDimensionsRec()
11009 Sizes.push_back(Step); in findArrayDimensionsRec()
12042 const SCEV *Step = AR->getStepRecurrence(SE); in visitZeroExtendExpr() local
12046 SE.getSignExtendExpr(Step, Ty), L, in visitZeroExtendExpr()
12058 const SCEV *Step = AR->getStepRecurrence(SE); in visitSignExtendExpr() local
12062 SE.getSignExtendExpr(Step, Ty), L, in visitSignExtendExpr()
12219 if (const auto *Step = dyn_cast<SCEVConstant>(AR->getStepRecurrence(SE))) in getImpliedFlags() local
12220 if (Step->getValue()->getValue().isNonNegative()) in getImpliedFlags()