johannes 02/09/25 12:30:46
Modified: gcc cfgcleanup.c
Log:
Roll in an FSF-approved change.
Revision Changes Path
1.8 +9 -0 gcc3/gcc/cfgcleanup.c
Index: cfgcleanup.c
===================================================================
RCS file: /cvs/Darwin/gcc3/gcc/cfgcleanup.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- cfgcleanup.c 2002/08/26 05:39:29 1.7
+++ cfgcleanup.c 2002/09/25 19:30:45 1.8
@@ -515,6 +515,15 @@
if (GET_CODE (insn) == NOTE)
break;
+
+ /* Do not clean up branches to just past the end of a loop
+ at this time; it can mess up the loop optimizer's
+ recognition of some patterns. */
+
+ insn = PREV_INSN (target->head);
+ if (insn && GET_CODE (insn) == NOTE
+ && NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
+ break;
}
counter++;