Lines Matching refs:Step
1156 static const SCEV *getSignedOverflowLimitForStep(const SCEV *Step, in getSignedOverflowLimitForStep() argument
1159 unsigned BitWidth = SE->getTypeSizeInBits(Step->getType()); in getSignedOverflowLimitForStep()
1160 if (SE->isKnownPositive(Step)) { in getSignedOverflowLimitForStep()
1163 SE->getSignedRange(Step).getSignedMax()); in getSignedOverflowLimitForStep()
1165 if (SE->isKnownNegative(Step)) { in getSignedOverflowLimitForStep()
1168 SE->getSignedRange(Step).getSignedMin()); in getSignedOverflowLimitForStep()
1176 static const SCEV *getUnsignedOverflowLimitForStep(const SCEV *Step, in getUnsignedOverflowLimitForStep() argument
1179 unsigned BitWidth = SE->getTypeSizeInBits(Step->getType()); in getUnsignedOverflowLimitForStep()
1183 SE->getUnsignedRange(Step).getUnsignedMax()); in getUnsignedOverflowLimitForStep()
1211 static const SCEV *getOverflowLimitForStep(const SCEV *Step, in getOverflowLimitForStep()
1214 return getSignedOverflowLimitForStep(Step, Pred, SE); in getOverflowLimitForStep()
1227 static const SCEV *getOverflowLimitForStep(const SCEV *Step, in getOverflowLimitForStep()
1230 return getUnsignedOverflowLimitForStep(Step, Pred, SE); in getOverflowLimitForStep()
1253 const SCEV *Step = AR->getStepRecurrence(*SE); in getPreStartForExtend() local
1265 if (Op != Step) in getPreStartForExtend()
1277 SE->getAddRecExpr(PreStart, Step, L, SCEV::FlagAnyWrap)); in getPreStartForExtend()
1293 (SE->*GetExtendExpr)(Step, WideTy)); in getPreStartForExtend()
1307 ExtendOpTraits<ExtendOpTy>::getOverflowLimitForStep(Step, &Pred, SE); in getPreStartForExtend()
1365 const SCEV *Step, in proveNoWrapByVaryingStart() argument
1389 ID.AddPointer(Step); in proveNoWrapByVaryingStart()
1455 const SCEV *Step = AR->getStepRecurrence(*this); in getZeroExtendExpr() local
1464 getZeroExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1488 const SCEV *ZMul = getMulExpr(CastedMaxBECount, Step); in getZeroExtendExpr()
1496 getZeroExtendExpr(Step, WideTy))); in getZeroExtendExpr()
1503 getZeroExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1510 getSignExtendExpr(Step, WideTy))); in getZeroExtendExpr()
1518 getSignExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1526 if (isKnownPositive(Step)) { in getZeroExtendExpr()
1528 getUnsignedRange(Step).getUnsignedMax()); in getZeroExtendExpr()
1538 getZeroExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1540 } else if (isKnownNegative(Step)) { in getZeroExtendExpr()
1542 getSignedRange(Step).getSignedMin()); in getZeroExtendExpr()
1553 getSignExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1558 if (proveNoWrapByVaryingStart<SCEVZeroExtendExpr>(Start, Step, L)) { in getZeroExtendExpr()
1562 getZeroExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getZeroExtendExpr()
1646 const SCEV *Step = AR->getStepRecurrence(*this); in getSignExtendExpr() local
1655 getSignExtendExpr(Step, Ty), L, SCEV::FlagNSW); in getSignExtendExpr()
1679 const SCEV *SMul = getMulExpr(CastedMaxBECount, Step); in getSignExtendExpr()
1687 getSignExtendExpr(Step, WideTy))); in getSignExtendExpr()
1694 getSignExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getSignExtendExpr()
1701 getZeroExtendExpr(Step, WideTy))); in getSignExtendExpr()
1716 getZeroExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getSignExtendExpr()
1726 getSignedOverflowLimitForStep(Step, &Pred, this); in getSignExtendExpr()
1736 getSignExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getSignExtendExpr()
1743 auto SC2 = dyn_cast<SCEVConstant>(Step); in getSignExtendExpr()
1750 const SCEV *NewAR = getAddRecExpr(getConstant(AR->getType(), 0), Step, in getSignExtendExpr()
1756 if (proveNoWrapByVaryingStart<SCEVSignExtendExpr>(Start, Step, L)) { in getSignExtendExpr()
1760 getSignExtendExpr(Step, Ty), L, AR->getNoWrapFlags()); in getSignExtendExpr()
2635 if (const SCEVConstant *Step = in getUDivExpr() local
2638 const APInt &StepInt = Step->getValue()->getValue(); in getUDivExpr()
2643 getZeroExtendExpr(Step, ExtTy), in getUDivExpr()
2658 getZeroExtendExpr(Step, ExtTy), in getUDivExpr()
2663 LHS = getAddRecExpr(getConstant(StartInt - StartRem), Step, in getUDivExpr()
2800 const SCEV *ScalarEvolution::getAddRecExpr(const SCEV *Start, const SCEV *Step, in getAddRecExpr() argument
2805 if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step)) in getAddRecExpr()
2811 Operands.push_back(Step); in getAddRecExpr()
3979 const SCEV *Step = AddRec->getStepRecurrence(*this); in getRange() local
3980 ConstantRange StepSRange = getSignedRange(Step); in getRange()
6117 const SCEV *Step = getSCEVAtScope(AddRec->getOperand(1), L->getParentLoop()); in HowFarToZero() local
6125 const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step); in HowFarToZero()
6165 return getUDivExactExpr(Distance, Step); in HowFarToZero()
6175 getUDivExpr(Distance, CountDown ? getNegativeSCEV(Step) : Step); in HowFarToZero()
7243 const SCEV *ScalarEvolution::computeBECount(const SCEV *Delta, const SCEV *Step, in computeBECount() argument
7245 const SCEV *One = getConstant(Step->getType(), 1); in computeBECount()
7246 Delta = Equality ? getAddExpr(Delta, Step) in computeBECount()
7247 : getAddExpr(Delta, getMinusSCEV(Step, One)); in computeBECount()
7248 return getUDivExpr(Delta, Step); in computeBECount()
7649 const SCEV *Step = Terms[Last]; in findArrayDimensionsRec() local
7653 if (const SCEVMulExpr *M = dyn_cast<SCEVMulExpr>(Step)) { in findArrayDimensionsRec()
7659 Step = SE.getMulExpr(Qs); in findArrayDimensionsRec()
7662 Sizes.push_back(Step); in findArrayDimensionsRec()
7669 SCEVDivision::divide(SE, Term, Step, &Q, &R); in findArrayDimensionsRec()
7688 Sizes.push_back(Step); in findArrayDimensionsRec()