Commit c7b30677 by Franz Sirl Committed by Franz Sirl

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
parent bd015d37
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> Sat Feb 24 06:45:21 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h (BLOCK_DEAD): New macro. * tree.h (BLOCK_DEAD): New macro.
......
...@@ -7259,6 +7259,7 @@ check_dbra_loop (loop, insn_count) ...@@ -7259,6 +7259,7 @@ check_dbra_loop (loop, insn_count)
if (bl->giv_count == 0 && ! loop->exit_count) if (bl->giv_count == 0 && ! loop->exit_count)
{ {
rtx bivreg = regno_reg_rtx[bl->regno]; 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 /* If there are no givs for this biv, and the only exit is the
fall through at the end of the loop, then fall through at the end of the loop, then
...@@ -7295,6 +7296,14 @@ check_dbra_loop (loop, insn_count) ...@@ -7295,6 +7296,14 @@ check_dbra_loop (loop, insn_count)
break; 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) if (no_use_except_counting)
......
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