loop.c (check_dbra_loop): A biv has uses besides counting if it is used to set another biv.

2001-02-24  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

        * loop.c (check_dbra_loop): A biv has uses besides counting if it is
        used to set another biv.

From-SVN: r40042
This commit is contained in:
Franz Sirl 2001-02-25 00:08:01 +00:00 committed by Franz Sirl
parent bd015d3783
commit c7b3067700
2 changed files with 14 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-02-24 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* loop.c (check_dbra_loop): A biv has uses besides counting if it is
used to set another biv.
Sat Feb 24 06:45:21 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h (BLOCK_DEAD): New macro.

View File

@ -7259,6 +7259,7 @@ check_dbra_loop (loop, insn_count)
if (bl->giv_count == 0 && ! loop->exit_count)
{
rtx bivreg = regno_reg_rtx[bl->regno];
struct iv_class *blt;
/* If there are no givs for this biv, and the only exit is the
fall through at the end of the loop, then
@ -7295,6 +7296,14 @@ check_dbra_loop (loop, insn_count)
break;
}
}
/* A biv has uses besides counting if it is used to set another biv. */
for (blt = ivs->list; blt; blt = blt->next)
if (blt->init_set && reg_mentioned_p (bivreg, SET_SRC (blt->init_set)))
{
no_use_except_counting = 0;
break;
}
}
if (no_use_except_counting)