Lines Matching refs:Limit
303 // Try to parse range check in the form of "IV vs Limit"
365 // Try to parse range check in the form of "IV - Offset vs Limit" or "Offset -
366 // IV vs Limit"
376 const SCEV *Limit = SE.getSCEV(InvariantRHS);
380 // "Offset - IV vs Limit"
383 // "IV - Offset vs Limit"
392 // In order to turn "IV - Offset < Limit" into "IV < Limit + Offset", we need
400 // [Case 1] IV - Offset < Limit
406 // 0 <= IV < Limit + Offset
410 // IV < Limit + Offset <= SINT_MAX + Offset
412 // [Case 2] Offset - IV > Limit
419 // 0 <= IV < Offset - Limit
423 // IV < Offset - Limit <= Offset - SINT_MIN
425 // For the computed upper boundary of the IV's range (Offset +/- Limit) we
463 // "IV - Offset < Limit" -> "IV" < Offset + Limit
464 Limit = getExprScaledIfOverflow(Instruction::BinaryOps::Add, Offset, Limit);
466 // "Offset - IV > Limit" -> "IV" < Offset - Limit
467 Limit = getExprScaledIfOverflow(Instruction::BinaryOps::Sub, Offset, Limit);
472 // "Expr <= Limit" -> "Expr < Limit + 1"
473 if (Pred == ICmpInst::ICMP_SLE && Limit)
474 Limit = getExprScaledIfOverflow(Instruction::BinaryOps::Add, Limit,
475 SE.getOne(Limit->getType()));
476 if (Limit) {
478 End = Limit;