Lines Matching defs:Smallest
605 // We compute `Smallest` and `Greatest` such that [Smallest, Greatest), or
606 // [Smallest, GreatestSeen] is the range of values the induction variable
609 const SCEV *Smallest = nullptr, *Greatest = nullptr, *GreatestSeen = nullptr;
613 Smallest = Start;
615 // No overflow, because the range [Smallest, GreatestSeen] is not empty.
624 // * if `Smallest` sign-overflows we know `End` is `INT_SMAX`. Since the
626 // the loop body is actually executed with is `INT_SMIN` == `Smallest`.
629 // that case, `Clamp` will always return `Smallest` and
630 // [`Result.LowLimit`, `Result.HighLimit`) = [`Smallest`, `Smallest`)
633 Smallest = SE.getAddExpr(End, One);
638 auto Clamp = [&SE, Smallest, Greatest, IsSignedPredicate](const SCEV *S) {
640 ? SE.getSMaxExpr(Smallest, SE.getSMinExpr(Greatest, S))
641 : SE.getUMaxExpr(Smallest, SE.getUMinExpr(Greatest, S));
651 SE.isKnownPredicate(PredLE, Range.getBegin(), Smallest);