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:
parent
048c861604
commit
045d7161a0
3 changed files with 14 additions and 3 deletions
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue