OSDN Git Service

* cfgrtl.c (verify_flow_info): Use control_flow_insn_p.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 9 Feb 2003 11:06:41 +0000 (11:06 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 9 Feb 2003 11:06:41 +0000 (11:06 +0000)
* reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
possibly got duplicated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62599 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cfgrtl.c
gcc/reload1.c

index f89f7b1..b078754 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb  8 00:21:22 CET 2003  Jan Hubicka  <jh@suse.cz>
+
+       * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
+       * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
+       possibly got duplicated.
+
 2003-02-08  Richard Henderson  <rth@redhat.com>
 
        * config/alpha/alpha.c (override_options): Turn off explicit
index 07f4a8c..5209aa2 100644 (file)
@@ -2008,9 +2008,7 @@ verify_flow_info ()
            if (x == bb->end)
              break;
 
-           if (GET_CODE (x) == JUMP_INSN
-               || GET_CODE (x) == CODE_LABEL
-               || GET_CODE (x) == BARRIER)
+           if (control_flow_insn_p (x))
              {
                error ("in basic block %d:", bb->index);
                fatal_insn ("flow control insn inside a basic block", x);
index f6498f1..33e15a1 100644 (file)
@@ -9533,6 +9533,14 @@ fixup_abnormal_edges ()
            }
        }
     }
+  /* We've possibly turned single trapping insn into multiple ones.  */
+  if (flag_non_call_exceptions)
+    {
+      sbitmap blocks;
+      blocks = sbitmap_alloc (last_basic_block);
+      sbitmap_ones (blocks);
+      find_many_sub_basic_blocks (blocks);
+    }
   if (inserted)
     commit_edge_insertions ();
 }