Lines Matching defs:iv1

211 number_of_iterations_lt_to_ne (tree type, affine_iv *iv0, affine_iv *iv1,
228 /* The final value of the iv is iv1->base + MOD, assuming that this
230 iv0->base <= iv1->base + MOD. */
231 if (!iv1->no_overflow && !zero_p (mod))
236 iv1->base, bound);
243 iv1->base, tmod));
249 iv0->base - MOD <= iv1->base. */
262 iv1->base);
283 assert_no_overflow_lt (tree type, affine_iv *iv0, affine_iv *iv1,
291 /* for (i = iv0->base; i < iv1->base; i += iv0->step) */
312 iv1->base, bound);
316 /* for (i = iv1->base; i > iv0->base; i += iv1->step) */
317 if (iv1->no_overflow)
320 if (TREE_CODE (iv1->base) == INTEGER_CST)
323 fold_convert (niter_type, iv1->base),
343 iv1->no_overflow = true;
351 assert_loop_rolls_lt (tree type, affine_iv *iv0, affine_iv *iv1,
374 iv1->base. */
376 mbzr = iv1->base;
381 iv1->step, build_int_cst (type, 1));
388 iv1->base, bound);
392 mbzr = fold_build2 (MINUS_EXPR, type, iv1->base, diff);
410 number_of_iterations_lt (tree type, affine_iv *iv0, affine_iv *iv1,
421 niter->bound = iv1->base;
425 niter->control = *iv1;
431 fold_convert (niter_type, iv1->base),
436 && zero_p (iv1->step))
437 || (iv1->step && integer_all_onesp (iv1->step)
440 /* for (i = iv0->base; i < iv1->base; i++)
444 for (i = iv1->base; i > iv0->base; i--).
446 In both cases # of iterations is iv1->base - iv0->base, assuming that
447 iv1->base >= iv0->base. */
449 iv1->base, iv0->base);
458 fold_build1 (NEGATE_EXPR, type, iv1->step));
463 if (number_of_iterations_lt_to_ne (type, iv0, iv1, niter, &delta, step))
477 if (!assert_no_overflow_lt (type, iv0, iv1, niter, step))
481 this to work, we must know that iv1->base >= iv0->base - step + 1,
483 assert_loop_rolls_lt (type, iv0, iv1, niter);
500 number_of_iterations_le (tree type, affine_iv *iv0, affine_iv *iv1,
514 iv1->base, TYPE_MAX_VALUE (type));
527 iv1->base = fold_build2 (PLUS_EXPR, type,
528 iv1->base, build_int_cst (type, 1));
532 return number_of_iterations_lt (type, iv0, iv1, niter, never_infinite);
554 affine_iv *iv1, struct tree_niter_desc *niter,
577 SWAP (iv0, iv1);
592 iv1->no_overflow = false;
597 /* Comparison of pointers is undefined unless both iv0 and iv1 point
606 iv1->no_overflow = true;
613 else if (!zero_p (iv1->step) && iv1->no_overflow)
621 if (!zero_p (iv0->step) && !zero_p (iv1->step))
627 iv0->step, iv1->step);
629 iv1->step = NULL_TREE;
630 iv1->no_overflow = true;
636 if (zero_p (iv0->step) && zero_p (iv1->step))
645 if (!zero_p (iv1->step) && !tree_int_cst_sign_bit (iv1->step))
650 if (zero_p (fold_build2 (code, boolean_type_node, iv0->base, iv1->base)))
661 gcc_assert (zero_p (iv1->step));
662 return number_of_iterations_ne (type, iv0, iv1->base, niter, never_infinite);
664 return number_of_iterations_lt (type, iv0, iv1, niter, never_infinite);
666 return number_of_iterations_le (type, iv0, iv1, niter, never_infinite);
1052 affine_iv iv0, iv1;
1091 if (!simple_iv (loop, stmt, op1, &iv1, false))
1099 iv1.base = expand_simple_operations (iv1.base);
1100 if (!number_of_iterations_cond (type, &iv0, code, &iv1, niter,
1147 if (!zero_p (iv1.step)
1149 && (integer_onep (iv1.step) || integer_all_onesp (iv1.step)))