aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-03-01 21:07:01 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2002-03-01 20:07:01 +0000
commit0010687d231895bed42ac368254546872bb3e0fc (patch)
tree556c8c1a010b043381cde3506a9accbf6fab8ea9
parente8b028d6ee84a598907a9187915508e804b2948c (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/flow.c3
-rw-r--r--gcc/rtl.h2
-rw-r--r--gcc/toplev.c1
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.
diff --git a/gcc/flow.c b/gcc/flow.c
index 54985d9..e2d957f 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 e679c54..a11bf9b 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 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 ();