From: Jeff Law Date: Fri, 7 May 1993 17:15:01 +0000 (-0600) Subject: loop.c (strength_reduce): Handle case where loop_end is the end of the current function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b2586fe0cbe611faf62d1c876afb306a897d8571;p=gcc.git loop.c (strength_reduce): Handle case where loop_end is the end of the current function. * loop.c (strength_reduce): Handle case where loop_end is the end of the current function. From-SVN: r4378 --- diff --git a/gcc/loop.c b/gcc/loop.c index 5fb4aba0eac..7c72e8c72b8 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -3148,9 +3148,15 @@ strength_reduce (scan_start, end, loop_top, insn_count, /* Save insn immediately after the loop_end. Insns inserted after loop_end must be put before this insn, so that they will appear in the right - order (i.e. loop order). */ + order (i.e. loop order). - end_insert_before = NEXT_INSN (loop_end); + If loop_end is the end of the current function, then emit a + NOTE_INSN_DELETED after loop_end and set end_insert_before to the + dummy note insn. */ + if (NEXT_INSN (loop_end) != 0) + end_insert_before = NEXT_INSN (loop_end); + else + end_insert_before = emit_note_after (NOTE_INSN_DELETED, loop_end); /* Scan through loop to find all possible bivs. */