except.c (except.c): Do not rebuild CFG.
authorJan Hubicka <jh@suse.cz>
Mon, 3 Jun 2002 18:16:50 +0000 (20:16 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 3 Jun 2002 18:16:50 +0000 (18:16 +0000)
* except.c (except.c): Do not rebuild CFG.
* toplev.c (rest_of_compilation): Recompute CFG after sibcall
optimization.

From-SVN: r54217

gcc/ChangeLog
gcc/except.c
gcc/toplev.c

index c14287a85e7c2cc9989ffe5c0e05f26f93c7c815..9b61fa6011ab20d17a31dcc7ab90c5e699a7a7b8 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (except.c): Do not rebuild CFG.
+       * toplev.c (rest_of_compilation): Recompute CFG after sibcall
+       optimization.
+
 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
 
        * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
index 5b21d64acd620a86f60e5466c0535fc7d6327fed..a2f2c69a1e1358630577e841b6a06348b7b8418a 100644 (file)
@@ -2499,8 +2499,6 @@ finish_eh_generation ()
      connect many of the handlers, and then type information will not
      be effective.  Still, this is a win over previous implementations.  */
 
-  rebuild_jump_labels (get_insns ());
-  find_basic_blocks (get_insns (), max_reg_num (), 0);
   cleanup_cfg (CLEANUP_PRE_LOOP | CLEANUP_NO_INSN_DEL);
 
   /* These registers are used by the landing pads.  Make sure they
index 4c52a04c7a20f250c91c999479bfcecb71dc549a..702937591b18dde9db73c74a9d174522b34d240f 100644 (file)
@@ -2560,6 +2560,12 @@ rest_of_compilation (decl)
       rtx insn;
       optimize_sibling_and_tail_recursive_calls ();
 
+      /* Recompute the CFG as sibling optimization clobbers it randomly.  */
+      free_bb_for_insn ();
+      find_exception_handler_labels ();
+      rebuild_jump_labels (insns);
+      find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
+
       /* There is pass ordering problem - we must lower NOTE_INSN_PREDICTION
          notes before simplifying cfg and we must do lowering after sibcall
          that unhides parts of RTL chain and cleans up the CFG.
@@ -2576,7 +2582,6 @@ rest_of_compilation (decl)
 
   scope_to_insns_initialize ();
   /* Complete generation of exception handling code.  */
-  find_exception_handler_labels ();
   if (doing_eh (0))
     {
       timevar_push (TV_JUMP);