Commit 9e2adb2a by Jakub Jelinek Committed by Jakub Jelinek

unroll.c (loop_iterations): If we cannot prove iteration variable is set once in…

unroll.c (loop_iterations): If we cannot prove iteration variable is set once in each iteration, punt.

	* unroll.c (loop_iterations): If we cannot prove iteration variable
	is set once in each iteration, punt.

From-SVN: r38996
parent 63eaee71
2001-01-13 Jakub Jelinek <jakub@redhat.com>
* unroll.c (loop_iterations): If we cannot prove iteration variable
is set once in each iteration, punt.
Sun Jan 14 00:23:15 2001 Denis Chertykov <denisc@overta.ru>
* config/avr/avr.md ("strlenhi"): Remove clobber of input address.
......
......@@ -3577,6 +3577,13 @@ loop_iterations (loop)
/* Grab initial value, only useful if it is a constant. */
bl = REG_IV_CLASS (ivs, REGNO (iteration_var));
initial_value = bl->initial_value;
if (!bl->biv->always_executed || bl->biv->maybe_multiple)
{
if (loop_dump_stream)
fprintf (loop_dump_stream,
"Loop iterations: Basic induction var not set once in each iteration.\n");
return 0;
}
increment = biv_total_increment (bl);
}
......@@ -3589,6 +3596,14 @@ loop_iterations (loop)
if (REGNO (v->src_reg) >= ivs->n_regs)
abort ();
if (!v->always_executed || v->maybe_multiple)
{
if (loop_dump_stream)
fprintf (loop_dump_stream,
"Loop iterations: General induction var not set once in each iteration.\n");
return 0;
}
bl = REG_IV_CLASS (ivs, REGNO (v->src_reg));
/* Increment value is mult_val times the increment value of the biv. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment