loop.c (check_final_value): Use v->always_executed instead of v->always_computable.

* loop.c (check_final_value): Use v->always_executed
	instead of v->always_computable.
	* unroll.c (final_giv_value): Don't calculate the final
	value as a function of the biv if the giv is not computed
	for every loop iteration.

From-SVN: r54634
This commit is contained in:
Eric Botcazou 2002-06-15 01:10:49 +00:00 committed by Richard Henderson
parent 048c861604
commit 045d7161a0
3 changed files with 14 additions and 3 deletions

View file

@ -1,3 +1,11 @@
2002-06-14 Eric Botcazou <ebotcazou@multimania.com>
* loop.c (check_final_value): Use v->always_executed
instead of v->always_computable.
* unroll.c (final_giv_value): Don't calculate the final
value as a function of the biv if the giv is not computed
for every loop iteration.
2002-06-14 Eric Botcazou <ebotcazou@multimania.com>
* loop.c (for_each_insn_in_loop): Fix formatting and comments.

View file

@ -5943,7 +5943,8 @@ check_final_value (loop, v)
#endif
if ((final_value = final_giv_value (loop, v))
&& (v->always_computable || last_use_this_basic_block (v->dest_reg, v->insn)))
&& (v->always_executed
|| last_use_this_basic_block (v->dest_reg, v->insn)))
{
int biv_increment_seen = 0, before_giv_insn = 0;
rtx p = v->insn;

View file

@ -3249,7 +3249,8 @@ final_giv_value (loop, v)
/* Try to calculate the final value as a function of the biv it depends
upon. The only exit from the loop must be the fall through at the bottom
(otherwise it may not have its final value when the loop exits). */
and the insn that sets the giv must be executed on every iteration
(otherwise the giv may not have its final value when the loop exits). */
/* ??? Can calculate the final giv value by subtracting off the
extra biv increments times the giv's mult_val. The loop must have
@ -3257,7 +3258,8 @@ final_giv_value (loop, v)
to be known. */
if (n_iterations != 0
&& ! loop->exit_count)
&& ! loop->exit_count
&& v->always_executed)
{
/* ?? It is tempting to use the biv's value here since these insns will
be put after the loop, and hence the biv will have its final value