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++;