aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-05-27 00:30:19 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2004-05-26 22:30:19 +0000
commite4efa9715632519e202f57250b3d8954b17ac9c9 (patch)
treebcb1158ea662217e049ebecc5fd5f6753def8825 /gcc
parentdabbc72269ece1873a9bc9a841ed7f3577312da3 (diff)
downloadgcc-e4efa9715632519e202f57250b3d8954b17ac9c9.zip
gcc-e4efa9715632519e202f57250b3d8954b17ac9c9.tar.gz
gcc-e4efa9715632519e202f57250b3d8954b17ac9c9.tar.bz2
* cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
From-SVN: r82296
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfgcleanup.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1fad8d5..167feba 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2004-05-27 Jan Hubicka <jh@suse.cz>
+ * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
+
+2004-05-27 Jan Hubicka <jh@suse.cz>
+
* i386.md (UNSPECV_EH_RETURN): Kill.
(eh_return): Use jump_insn.
(eh_return_si, eh_return_di): Change pattern to jump instruction.
@@ -8,7 +12,6 @@
* cfgcleanup.c (try_forward_edges): Do not check loop structure when
not loop optimizing.
- (try_optimize_cfg): Do not merge across jumptables.
2004-05-26 Jan Hubicka <jh@suse.cz>
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 10d9e96..9801b57 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -1938,7 +1938,9 @@ try_optimize_cfg (int mode)
&& (GET_CODE (BB_END (b)) != JUMP_INSN
|| (reload_completed
? simplejump_p (BB_END (b))
- : onlyjump_p (BB_END (b))))
+ : (onlyjump_p (BB_END (b))
+ && !tablejump_p (BB_END (b),
+ NULL, NULL))))
&& (next = merge_blocks_move (s, b, c, mode)))
{
b = next;