Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H) dependencies.
authorRichard Guenther <rguenther@suse.de>
Wed, 21 Mar 2012 08:02:21 +0000 (08:02 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 21 Mar 2012 08:02:21 +0000 (08:02 +0000)
2012-03-21  Richard Guenther  <rguenther@suse.de>

* Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
dependencies.
* cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
* passes.c (init_optimization_passes): Remove pass_init_function,
pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
* tree-pass.h (pass_init_function): Remove.
(pass_jump): Remove.
(pass_initial_value_sets): Remove.
(pass_unshare_all_rtl): Remove.
* integrate.c (pass_initial_value_sets): Remove.
* emit-rtl.c (pass_unshare_all_rtl): Remove.
* tree.h (init_function_for_compilation): Remove.
* function.c (init_function_for_compilation): Remove.
(pass_init_function): Remove.
* cfgcleanup.c (rest_of_handle_jump): Remove.
(pass_jump): Remove.

From-SVN: r185598

gcc/ChangeLog
gcc/Makefile.in
gcc/cfgcleanup.c
gcc/cfgexpand.c
gcc/emit-rtl.c
gcc/function.c
gcc/integrate.c
gcc/passes.c
gcc/tree-pass.h

index 117fab8b4b04845bb51e38082a802b56b240beb2..a1159697da2e7ef02597582d0eda6ee197dd4256 100644 (file)
@@ -1,3 +1,23 @@
+2012-03-21  Richard Guenther  <rguenther@suse.de>
+
+       * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
+       dependencies.
+       * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
+       pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
+       * passes.c (init_optimization_passes): Remove pass_init_function,
+       pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
+       * tree-pass.h (pass_init_function): Remove.
+       (pass_jump): Remove.
+       (pass_initial_value_sets): Remove.
+       (pass_unshare_all_rtl): Remove.
+       * integrate.c (pass_initial_value_sets): Remove.
+       * emit-rtl.c (pass_unshare_all_rtl): Remove.
+       * tree.h (init_function_for_compilation): Remove.
+       * function.c (init_function_for_compilation): Remove.
+       (pass_init_function): Remove.
+       * cfgcleanup.c (rest_of_handle_jump): Remove.
+       (pass_jump): Remove.
+
 2012-03-20  Jason Merrill  <jason@redhat.com>
 
        * tree-streamer-in.c (streamer_alloc_tree): Call
index ffbc7f3effff679ca2f48589d8d7749ee559ac1d..716b3a43d2a48dd5145aef297aad0e5067424089 100644 (file)
@@ -3147,8 +3147,9 @@ cfgexpand.o : cfgexpand.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
    $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) \
    coretypes.h $(TREE_DUMP_H) $(EXCEPT_H) langhooks.h $(TREE_PASS_H) $(RTL_H) \
    $(DIAGNOSTIC_H) toplev.h $(DIAGNOSTIC_CORE_H) $(BASIC_BLOCK_H) $(FLAGS_H) debug.h $(PARAMS_H) \
-   value-prof.h $(TREE_INLINE_H) $(TARGET_H) $(SSAEXPAND_H) \
-   tree-pretty-print.h gimple-pretty-print.h $(BITMAP_H) sbitmap.h $(INSN_ATTR_H)
+   value-prof.h $(TREE_INLINE_H) $(TARGET_H) $(SSAEXPAND_H) $(REGS_H) \
+   tree-pretty-print.h gimple-pretty-print.h $(BITMAP_H) sbitmap.h \
+   $(INSN_ATTR_H) $(INTEGRATE_H)
 cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_ERROR_H) \
    $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
    output.h  $(FUNCTION_H) $(EXCEPT_H) $(TM_P_H) $(INSN_ATTR_H) \
index b59cf7bc9f0ebbaec00482b7282412b0a363d398..c695878802c2dd358f8517e597f718f1bccf0f6d 100644 (file)
@@ -2981,34 +2981,6 @@ cleanup_cfg (int mode)
   return changed;
 }
 \f
-static unsigned int
-rest_of_handle_jump (void)
-{
-  if (crtl->tail_call_emit)
-    fixup_tail_calls ();
-  return 0;
-}
-
-struct rtl_opt_pass pass_jump =
-{
- {
-  RTL_PASS,
-  "sibling",                            /* name */
-  NULL,                                 /* gate */
-  rest_of_handle_jump,                 /* execute */
-  NULL,                                 /* sub */
-  NULL,                                 /* next */
-  0,                                    /* static_pass_number */
-  TV_JUMP,                              /* tv_id */
-  0,                                    /* properties_required */
-  0,                                    /* properties_provided */
-  0,                                    /* properties_destroyed */
-  TODO_ggc_collect,                     /* todo_flags_start */
-  TODO_verify_flow,                     /* todo_flags_finish */
- }
-};
-
-
 static unsigned int
 rest_of_handle_jump2 (void)
 {
index 543404a70d3a35eeb4a3fcd94d154b7c278835b7..75d2b1628659ce80d46f397c891c8dba2c9be13b 100644 (file)
@@ -47,6 +47,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssaexpand.h"
 #include "bitmap.h"
 #include "sbitmap.h"
+#include "regs.h" /* For reg_renumber.  */
+#include "integrate.h" /* For emit_initial_value_sets.  */
 #include "insn-attr.h" /* For INSN_SCHEDULING.  */
 
 /* This variable holds information helping the rewriting of SSA trees
@@ -4373,6 +4375,10 @@ gimple_expand_cfg (void)
   SA.partition_to_pseudo = (rtx *)xcalloc (SA.map->num_partitions,
                                           sizeof (rtx));
 
+  /* Make sure all values used by the optimization passes have sane
+     defaults.  */
+  reg_renumber = 0;
+
   /* Some backends want to know that we are expanding to RTL.  */
   currently_expanding_to_rtl = 1;
   /* Dominators are not kept up-to-date as we may create new basic-blocks.  */
@@ -4625,6 +4631,11 @@ gimple_expand_cfg (void)
 
   expand_stack_alignment ();
 
+  /* Fixup REG_EQUIV notes in the prologue if there are tailcalls in this
+     function.  */
+  if (crtl->tail_call_emit)
+    fixup_tail_calls ();
+
   /* After initial rtl generation, call back to finish generating
      exception support code.  We need to do this before cleaning up
      the CFG as the code does not expect dead landing pads.  */
@@ -4643,6 +4654,12 @@ gimple_expand_cfg (void)
   verify_flow_info ();
 #endif
 
+  /* Initialize pseudos allocated for hard registers.  */
+  emit_initial_value_sets ();
+
+  /* And finally unshare all RTL.  */
+  unshare_all_rtl ();
+
   /* There's no need to defer outputting this function any more; we
      know we want to output it.  */
   DECL_DEFER_OUTPUT (current_function_decl) = 0;
@@ -4692,7 +4709,9 @@ gimple_expand_cfg (void)
      the common parent easily.  */
   set_block_levels (DECL_INITIAL (cfun->decl), 0);
   default_rtl_profile ();
+
   timevar_pop (TV_POST_EXPAND);
+
   return 0;
 }
 
index fd19fb6ace0782a0330b0a3771c89164e8e4dd03..4f809820b7898ccc65d733d2054c36dc13a6e0b1 100644 (file)
@@ -2475,25 +2475,6 @@ unshare_all_rtl (void)
   return 0;
 }
 
-struct rtl_opt_pass pass_unshare_all_rtl =
-{
- {
-  RTL_PASS,
-  "unshare",                            /* name */
-  NULL,                                 /* gate */
-  unshare_all_rtl,                      /* execute */
-  NULL,                                 /* sub */
-  NULL,                                 /* next */
-  0,                                    /* static_pass_number */
-  TV_NONE,                              /* tv_id */
-  0,                                    /* properties_required */
-  0,                                    /* properties_provided */
-  0,                                    /* properties_destroyed */
-  0,                                    /* todo_flags_start */
-  TODO_verify_rtl_sharing               /* todo_flags_finish */
- }
-};
-
 
 /* Check that ORIG is not marked when it should not be and mark ORIG as in use,
    Recursively does the same for subexpressions.  */
index 9add7c1a007db7da948fc6273306833f17de5564..3e903ef94da2474f176606c72cf71db4eb2c0b4a 100644 (file)
@@ -4558,33 +4558,6 @@ init_function_start (tree subr)
     warning (OPT_Waggregate_return, "function returns an aggregate");
 }
 
-/* Make sure all values used by the optimization passes have sane defaults.  */
-unsigned int
-init_function_for_compilation (void)
-{
-  reg_renumber = 0;
-  return 0;
-}
-
-struct rtl_opt_pass pass_init_function =
-{
- {
-  RTL_PASS,
-  "*init_function",                     /* name */
-  NULL,                                 /* gate */
-  init_function_for_compilation,        /* execute */
-  NULL,                                 /* sub */
-  NULL,                                 /* next */
-  0,                                    /* static_pass_number */
-  TV_NONE,                              /* tv_id */
-  0,                                    /* properties_required */
-  0,                                    /* properties_provided */
-  0,                                    /* properties_destroyed */
-  0,                                    /* todo_flags_start */
-  0                                     /* todo_flags_finish */
- }
-};
-
 
 void
 expand_main_function (void)
index 3a79183b155c6fb0cff6926acaad67be6258f157..53c5d78cf6e297d58c20710f6dd442f4b89c9d2f 100644 (file)
@@ -310,25 +310,6 @@ emit_initial_value_sets (void)
   return 0;
 }
 
-struct rtl_opt_pass pass_initial_value_sets =
-{
- {
-  RTL_PASS,
-  "initvals",                           /* name */
-  NULL,                                 /* gate */
-  emit_initial_value_sets,              /* execute */
-  NULL,                                 /* sub */
-  NULL,                                 /* next */
-  0,                                    /* static_pass_number */
-  TV_NONE,                              /* tv_id */
-  0,                                    /* properties_required */
-  0,                                    /* properties_provided */
-  0,                                    /* properties_destroyed */
-  0,                                    /* todo_flags_start */
-  0                                     /* todo_flags_finish */
- }
-};
-
 /* If the backend knows where to allocate pseudos for hard
    register initial values, register these allocations now.  */
 void
index 02b1b5b122fbf2ec2a5a03b3f18819f8cb169fc1..0cb97a501533949db81d3b6267dc0a533f42de00 100644 (file)
@@ -1429,10 +1429,6 @@ init_optimization_passes (void)
   NEXT_PASS (pass_rest_of_compilation);
     {
       struct opt_pass **p = &pass_rest_of_compilation.pass.sub;
-      NEXT_PASS (pass_init_function);
-      NEXT_PASS (pass_jump);
-      NEXT_PASS (pass_initial_value_sets);
-      NEXT_PASS (pass_unshare_all_rtl);
       NEXT_PASS (pass_instantiate_virtual_regs);
       NEXT_PASS (pass_into_cfg_layout_mode);
       NEXT_PASS (pass_jump2);
index 8c50267953cf5304950fc28fb9e19c961fcb6241..f5cffa3375bfc2f510de1a05f1837d37b9ee5fb6 100644 (file)
@@ -485,10 +485,6 @@ extern struct gimple_opt_pass pass_init_datastructures;
 extern struct gimple_opt_pass pass_fixup_cfg;
 
 extern struct rtl_opt_pass pass_expand;
-extern struct rtl_opt_pass pass_init_function;
-extern struct rtl_opt_pass pass_jump;
-extern struct rtl_opt_pass pass_initial_value_sets;
-extern struct rtl_opt_pass pass_unshare_all_rtl;
 extern struct rtl_opt_pass pass_instantiate_virtual_regs;
 extern struct rtl_opt_pass pass_rtl_fwprop;
 extern struct rtl_opt_pass pass_rtl_fwprop_addr;