summaryrefslogtreecommitdiffstats
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-02-23 01:28:59 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-02-23 01:28:59 +0000
commitc7d80600af3cb26f465ea6fea52ac5f4e47e2ae6 (patch)
tree5ce60a7bc9cf70398ccad1c8317ac978dc617854 /gcc/passes.c
parent298cddb520d43f70f5651170f2a5c473a1dc199a (diff)
downloadppe42-gcc-c7d80600af3cb26f465ea6fea52ac5f4e47e2ae6.tar.gz
ppe42-gcc-c7d80600af3cb26f465ea6fea52ac5f4e47e2ae6.zip
gcc/
PR rtl-optimization/20017. * passes.c (rest_of_handle_combine, rest_of_handle_cse, rest_of_handle_cse2, rest_of_handle_gcse): Call delete_dead_jumptables immediately before calling cleanup_cfg. testsuite/ PR rtl-optimization/20017. * gcc.dg/pr20017.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95431 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index 695e4908cd1..956885ab717 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -895,6 +895,7 @@ rest_of_handle_combine (void)
rebuild_jump_labels (get_insns ());
timevar_pop (TV_JUMP);
+ delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_UPDATE_LIFE);
}
@@ -971,6 +972,9 @@ rest_of_handle_cse (void)
expecting CSE to be run. But always rerun it in a cheap mode. */
cse_not_expected = !flag_rerun_cse_after_loop && !flag_gcse;
+ if (tem)
+ delete_dead_jumptables ();
+
if (tem || optimize > 1)
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
@@ -1006,6 +1010,7 @@ rest_of_handle_cse2 (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
+ delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE);
timevar_pop (TV_JUMP);
}
@@ -1053,6 +1058,7 @@ rest_of_handle_gcse (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
+ delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
timevar_pop (TV_JUMP);
}
OpenPOWER on IntegriCloud