toplev.c (rest_of_compilation): Delete dead jumptables before loop.
authorJan Hubicka <jh@suse.cz>
Fri, 1 Mar 2002 20:07:01 +0000 (21:07 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 1 Mar 2002 20:07:01 +0000 (20:07 +0000)
* 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
gcc/flow.c
gcc/rtl.h
gcc/toplev.c

index b9dabea..57de667 100644 (file)
@@ -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.
index 54985d9..e2d957f 100644 (file)
@@ -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));
 \f
 
@@ -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;
index e679c54..a11bf9b 100644 (file)
--- 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 *));
index 7cf0c96..83de908 100644 (file)
@@ -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 ();