Commit e6dc3aa0 by Richard Henderson Committed by Richard Henderson

doloop.c (doloop_modify_runtime): Properly select induction variable...

        * doloop.c (doloop_modify_runtime): Properly select induction
        variable; skip late entry test if biv initializer created by loop.

From-SVN: r47423
parent 969ff1a0
2001-11-28 Richard Henderson <rth@redhat.com>
* doloop.c (doloop_modify_runtime): Properly select induction
variable; skip late entry test if biv initializer created by loop.
Wed Nov 28 08:21:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h (EXPR_WFL_LINECOL): Used by Java in node other than
......
......@@ -621,11 +621,23 @@ doloop_modify_runtime (loop, iterations_max,
if (loop->scan_start)
{
rtx iteration_var = loop_info->iteration_var;
struct loop_ivs *ivs = LOOP_IVS (loop);
struct iv_class *bl
= REG_IV_CLASS (ivs, REGNO (loop_info->iteration_var));
struct iv_class *bl;
if (INSN_LUID (bl->biv->insn) < INSN_LUID (loop->scan_start))
if (REG_IV_TYPE (ivs, REGNO (iteration_var)) == BASIC_INDUCT)
bl = REG_IV_CLASS (ivs, REGNO (iteration_var));
else if (REG_IV_TYPE (ivs, REGNO (iteration_var)) == GENERAL_INDUCT)
{
struct induction *v = REG_IV_INFO (ivs, REGNO (iteration_var));
bl = REG_IV_CLASS (ivs, REGNO (v->src_reg));
}
else
/* Iteration var must be an induction variable to get here. */
abort();
if (INSN_UID (bl->biv->insn) < max_uid_for_loop
&& INSN_LUID (bl->biv->insn) < INSN_LUID (loop->scan_start))
{
if (loop_dump_stream)
fprintf (loop_dump_stream,
......
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