diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1fad8d51b1f..167feba2e2f 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 10d9e96c135..9801b570284 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; |