From 5f3db57e5223051200369d2f799d49119ac24b32 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Fri, 5 Feb 1999 14:38:32 +0000 Subject: [PATCH] loop.c (strength_reduce): Clear not_every_iteration when passing the NOTE_INSN_LOOP_CONT note. * loop.c (strength_reduce): Clear not_every_iteration when passing the NOTE_INSN_LOOP_CONT note. From-SVN: r25050 --- gcc/ChangeLog | 3 +++ gcc/loop.c | 18 ++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f503136bb20..1fdb2f0f21a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -9,6 +9,9 @@ Fri Feb 5 11:49:49 1999 Benjamin Kosnik Fri Feb 5 12:37:05 1999 Jeffrey A Law (law@cygnus.com) + * loop.c (strength_reduce): Clear not_every_iteration when + passing the NOTE_INSN_LOOP_CONT note. + * haifa-sched.c (add_dependence): Do not add a dependency on a note. diff --git a/gcc/loop.c b/gcc/loop.c index abf90cea543..29ef980ab9a 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -3824,8 +3824,13 @@ strength_reduce (scan_start, end, loop_top, insn_count, { /* At the virtual top of a converted loop, insns are again known to be executed each iteration: logically, the loop begins here - even though the exit code has been duplicated. */ - if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP && loop_depth == 0) + even though the exit code has been duplicated. + + Insns are also again known to be executed each iteration at + the LOOP_CONT note. */ + if ((NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP + || NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_CONT) + && loop_depth == 0) not_every_iteration = 0; else if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_BEG) loop_depth++; @@ -4381,8 +4386,13 @@ strength_reduce (scan_start, end, loop_top, insn_count, { /* At the virtual top of a converted loop, insns are again known to be executed each iteration: logically, the loop begins here - even though the exit code has been duplicated. */ - if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP && loop_depth == 0) + even though the exit code has been duplicated. + + Insns are also again known to be executed each iteration at + the LOOP_CONT note. */ + if ((NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP + || NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_CONT) + && loop_depth == 0) not_every_iteration = 0; else if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_BEG) loop_depth++; -- 2.30.2