summaryrefslogtreecommitdiff
path: root/gcc/cfglayout.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2007-03-15 20:08:29 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2007-03-15 20:08:29 +0000
commit49ea3702aa813f8181f4803830e0506abbd19e7a (patch)
tree9b1ab29c213a2680b9ef2b4f06ef1795ab842e8d /gcc/cfglayout.c
parent30bcc028906e873ba60715aaed036248e1420e10 (diff)
downloadgcc-49ea3702aa813f8181f4803830e0506abbd19e7a.tar.gz
cfglayout.c (fixup_reorder_chain): Postpone deleting dead jump tables...
* cfglayout.c (fixup_reorder_chain): Postpone deleting dead jump tables, move the call to delete_dead_jumptables from here... (cfg_layout_finalize): ...to here. But rebuild jump labels first. * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing, don't allow merging of blocks that try_redirect_by_replacing_jump also does not handle when not optimizing. From-SVN: r122957
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r--gcc/cfglayout.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 545cc5d77fc..ef085fcf6d4 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -697,7 +697,6 @@ fixup_reorder_chain (void)
#ifdef ENABLE_CHECKING
verify_insn_chain ();
#endif
- delete_dead_jumptables ();
/* Now add jumps and labels as needed to match the blocks new
outgoing edges. */
@@ -1193,6 +1192,9 @@ cfg_layout_finalize (void)
fixup_fallthru_exit_predecessor ();
fixup_reorder_chain ();
+ rebuild_jump_labels (get_insns ());
+ delete_dead_jumptables ();
+
#ifdef ENABLE_CHECKING
verify_insn_chain ();
#endif