From: Richard Kenner Date: Sun, 13 Aug 1995 18:50:39 +0000 (-0400) Subject: (find_and_verify_loops): Set dest_loop only if JUMP_LABEL (insn) is X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fdccb6df822abcb20bc2274de91d03fd97fa18ae;p=gcc.git (find_and_verify_loops): Set dest_loop only if JUMP_LABEL (insn) is non-zero. From-SVN: r10210 --- diff --git a/gcc/loop.c b/gcc/loop.c index 2729450a389..f48a42a0930 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -2338,8 +2338,8 @@ find_and_verify_loops (f) { rtx p; rtx our_next = next_real_insn (insn); - int dest_loop = uid_loop_num[INSN_UID (JUMP_LABEL (insn))]; - int outer_loop; + int dest_loop; + int outer_loop = -1; /* Go backwards until we reach the start of the loop, a label, or a JUMP_INSN. */ @@ -2354,15 +2354,17 @@ find_and_verify_loops (f) /* Check for the case where we have a jump to an inner nested 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; - outer_loop = loop_outer_loop[outer_loop]) - if (outer_loop == this_loop_num) - break; + dest_loop = uid_loop_num[INSN_UID (JUMP_LABEL (insn))]; + if (dest_loop != -1) + { + 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, we have a block of code to try to move.