Commit fdccb6df by Richard Kenner

(find_and_verify_loops): Set dest_loop only if JUMP_LABEL (insn) is

non-zero.

From-SVN: r10210
parent d6b3cb10
...@@ -2338,8 +2338,8 @@ find_and_verify_loops (f) ...@@ -2338,8 +2338,8 @@ find_and_verify_loops (f)
{ {
rtx p; rtx p;
rtx our_next = next_real_insn (insn); rtx our_next = next_real_insn (insn);
int dest_loop = uid_loop_num[INSN_UID (JUMP_LABEL (insn))]; int dest_loop;
int outer_loop; int outer_loop = -1;
/* Go backwards until we reach the start of the loop, a label, /* Go backwards until we reach the start of the loop, a label,
or a JUMP_INSN. */ or a JUMP_INSN. */
...@@ -2354,15 +2354,17 @@ find_and_verify_loops (f) ...@@ -2354,15 +2354,17 @@ find_and_verify_loops (f)
/* Check for the case where we have a jump to an inner nested /* Check for the case where we have a jump to an inner nested
loop, and do not perform the optimization in that case. */ loop, and do not perform the optimization in that case. */
if (dest_loop != -1) if (JUMP_LABEL (insn))
{ {
for (outer_loop = dest_loop; outer_loop != -1; dest_loop = uid_loop_num[INSN_UID (JUMP_LABEL (insn))];
outer_loop = loop_outer_loop[outer_loop]) if (dest_loop != -1)
if (outer_loop == this_loop_num) {
break; for (outer_loop = dest_loop; outer_loop != -1;
outer_loop = loop_outer_loop[outer_loop])
if (outer_loop == this_loop_num)
break;
}
} }
else
outer_loop = -1;
/* If we stopped on a JUMP_INSN to the next insn after INSN, /* If we stopped on a JUMP_INSN to the next insn after INSN,
we have a block of code to try to move. we have a block of code to try to move.
......
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