diff options
author | Jan Hubicka <jh@suse.cz> | 2002-03-01 21:07:01 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-03-01 20:07:01 +0000 |
commit | 0010687d231895bed42ac368254546872bb3e0fc (patch) | |
tree | 556c8c1a010b043381cde3506a9accbf6fab8ea9 | |
parent | e8b028d6ee84a598907a9187915508e804b2948c (diff) | |
download | gcc-0010687d231895bed42ac368254546872bb3e0fc.zip gcc-0010687d231895bed42ac368254546872bb3e0fc.tar.gz gcc-0010687d231895bed42ac368254546872bb3e0fc.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/flow.c | 3 | ||||
-rw-r--r-- | gcc/rtl.h | 2 | ||||
-rw-r--r-- | gcc/toplev.c | 1 |
4 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b9dabea..57de667 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Fri Mar 1 20:59:14 CET 2002 Jan Hubicka <jh@suse.cz> + + * 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 <edelsohn@gnu.org> * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete. @@ -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; @@ -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 7cf0c96..83de908 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 (); |