Home | History | Annotate | Download | only in Analysis

Lines Matching defs:Start

276   // In an AddRec, check if both start and step are divisible.
284 const SCEV *Start = A->getStart();
285 if (!FactorOutConstant(Start, Remainder, Factor, SE, DL))
287 S = SE.getAddRecExpr(Start, Step, A->getLoop(),
323 /// SplitAddRecs - Flatten a list of add operands, moving addrec start values
335 const SCEV *Start = A->getStart();
336 if (Start->isZero()) break;
342 if (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(Start)) {
347 Ops[i] = Start;
1186 // Expand code for the start value.
1225 // Add a start value.
1273 // Strip off any non-loop-dominating component from the addrec start.
1274 const SCEV *Start = Normalized->getStart();
1276 if (!SE.properlyDominates(Start, L->getHeader())) {
1277 PostLoopOffset = Start;
1278 Start = SE.getConstant(Normalized->getType(), 0);
1280 SE.getAddRecExpr(Start, Normalized->getStepRecurrence(SE),
1291 if (!Start->isZero()) {
1292 // The normalization below assumes that Start is constant zero, so if
1293 // it isn't re-associate Start to PostLoopOffset.
1294 assert(!PostLoopOffset && "Start not-null but PostLoopOffset set?");
1295 PostLoopOffset = Start;
1296 Start = SE.getConstant(Normalized->getType(), 0);
1300 Start, Step, Normalized->getLoop(),
1674 // LSR sets the insertion point for AddRec start/step values to the
1675 // block start to simplify value reuse, even though it's an invalid
2044 const SCEV *Start = AR->getStart();
2049 // The expression {Start,+,Step} has nusw/nssw if
2050 // Step < 0, Start - |Step| * Backedge <= Start
2051 // Step >= 0, Start + |Step| * Backedge > Start
2063 Value *StartValue = expandCodeFor(Start, Ty, Loc);
2084 // Start + |Step| * Backedge < Start
2085 // Start - |Step| * Backedge > Start