Lines Matching defs:Step
282 // In an AddRec, check if both start and step are divisible.
284 const SCEV *Step = A->getStepRecurrence(SE);
285 const SCEV *StepRem = SE.getConstant(Step->getType(), 0);
286 if (!FactorOutConstant(Step, StepRem, Factor, SE, DL))
293 S = SE.getAddRecExpr(Start, Step, A->getLoop(),
901 // Check for a simple Add/Sub or GEP of a loop invariant step.
998 // If the step isn't constant, don't use an implicitly scaled GEP, because
1034 /// the available PHI SCEV by truncation and/or invertion of the step.
1087 // step-inversion if we know this loop is outside the current loop.
1163 // AddRecs. Otherwise, we cannot find a valid position for the step
1179 // Expand code for the step value. Do this before creating the PHI so that PHI
1181 const SCEV *Step = Normalized->getStepRecurrence(SE);
1185 bool useSubtract = !ExpandTy->isPointerTy() && Step->isNonConstantNegative();
1187 Step = SE.getNegativeSCEV(Step);
1188 // Expand the step somewhere that dominates the loop header.
1189 Value *StepV = expandCodeFor(Step, IntTy, L->getHeader()->begin());
1199 // Create the step instructions and populate the PHI.
1209 // Create a step value and add it to the PHI.
1263 // Strip off any non-loop-dominating component from the addrec step.
1264 const SCEV *Step = Normalized->getStepRecurrence(SE);
1266 if (!SE.dominates(Step, L->getHeader())) {
1267 PostLoopScale = Step;
1268 Step = SE.getConstant(Normalized->getType(), 1);
1271 Start, Step, Normalized->getLoop(),
1279 // it and/or invert the step.
1311 !ExpandTy->isPointerTy() && Step->isNonConstantNegative();
1313 Step = SE.getNegativeSCEV(Step);
1316 // Expand the step somewhere that dominates the loop header.
1318 StepV = expandCodeFor(Step, IntTy, L->getHeader()->begin());
1325 // truncation and/or invertion of the step.
1606 // LSR sets the insertion point for AddRec start/step values to the
1817 // We cannot generally expand recurrences unless the step dominates the loop
1838 const SCEV *Step = AR->getStepRecurrence(SE);
1839 if (!AR->isAffine() && !SE.dominates(Step, AR->getLoop()->getHeader())) {