]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Sat Jul 5 16:18:53 CEST 2003 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Sat, 5 Jul 2003 14:40:59 +0000 (16:40 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 5 Jul 2003 14:40:59 +0000 (14:40 +0000)
Blame to Jan Hubicka  <jh@suse.cz>
* cfglayout.c (record_effective_endpoints): Split insns before
first basic block correctly.

From-SVN: r68973

gcc/ChangeLog
gcc/cfglayout.c

index 04fa53e0bce312187f8333d53f8a9e76d71a52be..bb80f8f2d5e9241dcf530c1300469ad99975d48f 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jul  5 16:18:53 CEST 2003  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       Blame to Jan Hubicka  <jh@suse.cz>
+       * cfglayout.c (record_effective_endpoints): Split insns before
+       first basic block correctly.
+
 2003-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use 
index 3a6b92500b6e1effd7053d061f8c77d2f505f162..08d20e1357af18282e563e29e72f753325f41d00 100644 (file)
@@ -196,19 +196,16 @@ record_effective_endpoints (void)
   rtx insn;
 
   for (insn = get_insns ();
-       NEXT_INSN (insn) && GET_CODE (insn) == NOTE;
+       insn
+       && GET_CODE (insn) == NOTE
+       && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK;
        insn = NEXT_INSN (insn))
-    {
-      if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_BASIC_BLOCK)
-       {
-         insn = NULL;
-         break;
-        }
-      if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG)
-       break;
-    }
-  if (insn)
-    cfg_layout_function_header = unlink_insn_chain (get_insns (), insn);
+    continue;
+  if (!insn)
+    abort ();  /* No basic blocks at all?  */
+  if (PREV_INSN (insn))
+    cfg_layout_function_header =
+           unlink_insn_chain (get_insns (), PREV_INSN (insn));
   else
     cfg_layout_function_header = NULL_RTX;