diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-09 11:06:41 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-09 11:06:41 +0000 |
commit | aaf52ffbaf8c218eee58f8a521b6ee85aac795ef (patch) | |
tree | 6b24a29133ae24969b1e27da72dcf451d715b9fb /gcc | |
parent | 6d405dc8312d54095318f1edfeda467dc1a4a2fe (diff) | |
download | gcc-aaf52ffbaf8c218eee58f8a521b6ee85aac795ef.tar.gz |
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 4 | ||||
-rw-r--r-- | gcc/reload1.c | 8 |
3 files changed, 15 insertions, 3 deletions
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 <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 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 (); } |