From aaf52ffbaf8c218eee58f8a521b6ee85aac795ef Mon Sep 17 00:00:00 2001 From: hubicka Date: Sun, 9 Feb 2003 11:06:41 +0000 Subject: * cfgrtl.c (verify_flow_info): Use control_flow_insn_p. * 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 | 6 ++++++ gcc/cfgrtl.c | 4 +--- gcc/reload1.c | 8 ++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f89f7b17866..b078754b890 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sat Feb 8 00:21:22 CET 2003 Jan Hubicka + + * 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 * config/alpha/alpha.c (override_options): Turn off explicit diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 07f4a8c0957..5209aa2b85f 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -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); diff --git a/gcc/reload1.c b/gcc/reload1.c index f6498f10e29..33e15a1f0d4 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -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 (); } -- cgit v1.2.1