From 0010687d231895bed42ac368254546872bb3e0fc Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 1 Mar 2002 21:07:01 +0100 Subject: [PATCH] toplev.c (rest_of_compilation): Delete dead jumptables before loop. * toplev.c (rest_of_compilation): Delete dead jumptables before loop. * flow.c (delete_dead_jumptables): Make global. * rtl.h (delete_dead_jumptables): Declare. From-SVN: r50205 --- gcc/ChangeLog | 7 +++++++ gcc/flow.c | 3 +-- gcc/rtl.h | 2 ++ gcc/toplev.c | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b9dabea42ff..57de66776eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Fri Mar 1 20:59:14 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Delete dead jumptables before + loop. + * flow.c (delete_dead_jumptables): Make global. + * rtl.h (delete_dead_jumptables): Declare. + 2002-03-01 David Edelsohn * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete. diff --git a/gcc/flow.c b/gcc/flow.c index 54985d921f5..e2d957f2f6c 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -336,7 +336,6 @@ static void invalidate_mems_from_autoinc PARAMS ((struct propagate_block_info *, rtx)); static void invalidate_mems_from_set PARAMS ((struct propagate_block_info *, rtx)); -static void delete_dead_jumptables PARAMS ((void)); static void clear_log_links PARAMS ((sbitmap)); @@ -844,7 +843,7 @@ delete_noop_moves (f) time of removing tablejump insn as they are referenced by the preceding insns computing the destination, so we delay deleting and garbagecollect them once life information is computed. */ -static void +void delete_dead_jumptables () { rtx insn, next; diff --git a/gcc/rtl.h b/gcc/rtl.h index e679c5483be..a11bf9b6db0 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1853,6 +1853,7 @@ extern void set_new_first_and_last_insn PARAMS ((rtx, rtx)); extern void set_new_first_and_last_label_num PARAMS ((int, int)); extern void set_new_last_label_num PARAMS ((int)); extern void unshare_all_rtl_again PARAMS ((rtx)); +extern void set_first_insn PARAMS ((rtx)); extern void set_last_insn PARAMS ((rtx)); extern void link_cc0_insns PARAMS ((rtx)); extern void add_insn PARAMS ((rtx)); @@ -1936,6 +1937,7 @@ extern void move_by_pieces PARAMS ((rtx, rtx, /* In flow.c */ extern void recompute_reg_usage PARAMS ((rtx, int)); extern int initialize_uninitialized_subregs PARAMS ((void)); +extern void delete_dead_jumptables PARAMS ((void)); #ifdef BUFSIZ extern void print_rtl_with_bb PARAMS ((FILE *, rtx)); extern void dump_flow_info PARAMS ((FILE *)); diff --git a/gcc/toplev.c b/gcc/toplev.c index 7cf0c96db9a..83de90890ec 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2864,6 +2864,7 @@ rest_of_compilation (decl) if (optimize > 0) { timevar_push (TV_LOOP); + delete_dead_jumptables (); open_dump_file (DFI_loop, decl); /* CFG is no longer maintained up-to-date. */ free_bb_for_insn (); -- 2.30.2