target.h (late_rtl_prologue_epilogue): Remove.
authorEric Botcazou <ebotcazou@libertysurf.fr>
Wed, 24 Nov 2004 08:39:34 +0000 (09:39 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Wed, 24 Nov 2004 08:39:34 +0000 (08:39 +0000)
* target.h (late_rtl_prologue_epilogue): Remove.
* target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
* system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
* passes.c (rest_of_handle_prologue_epilogue): Remove and move
remaining bits to...
(rest_of_handle_flow2): ...here.
(rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
* doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.

From-SVN: r91140

gcc/ChangeLog
gcc/doc/tm.texi
gcc/passes.c
gcc/system.h
gcc/target-def.h
gcc/target.h

index 8c29f0f57ba9bd5da5c5f3dc0d3d7d9b330591d1..ada5b335c194f9b3e1b7c4c98fccabfe9766b1ba 100644 (file)
@@ -1,3 +1,14 @@
+2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * target.h (late_rtl_prologue_epilogue): Remove.
+       * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
+       * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
+       * passes.c (rest_of_handle_prologue_epilogue): Remove and move
+       remaining bits to...
+       (rest_of_handle_flow2): ...here.
+       (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
+       * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
+
 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
 
        * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
index 409559e5a2c8d68f03a0c8d2241857181a16a4b1..339a41d314ad29384574c780b1eb387e51697a5c 100644 (file)
@@ -4263,16 +4263,6 @@ arguments that a function should pop.  @xref{Scalar Return}.
 @c tell?  --mew 5feb93
 @end deftypefn
 
-@deftypefn {Target Hook} bool TARGET_LATE_RTL_PROLOGUE_EPILOGUE
-If set to @code{true}, it instructs the compiler to emit the RTL prologue
-and epilogue later in the game than usual, namely after all passes that
-modify the instructions (and not merely reorder them) have been run.  In
-particular, the C variable @code{current_function_uses_only_leaf_regs} is
-valid at that point.  This can be used on machines that have "register
-windows" to optimize away the regular "push" on the register stack.
-@xref{Leaf Functions}.
-@end deftypefn
-
 @itemize @bullet
 @item
 @findex current_function_pretend_args_size
index cb81eb7b5361129d55f29370c148f41abca30471..36b13d155fbf44feb5261c7a9304c1c8db8b62ec 100644 (file)
@@ -1314,24 +1314,6 @@ rest_of_handle_eh (void)
     }
 }
 
-
-static void
-rest_of_handle_prologue_epilogue (void)
-{
-  if (optimize && !flow2_completed)
-    cleanup_cfg (CLEANUP_EXPENSIVE);
-
-  /* On some machines, the prologue and epilogue code, or parts thereof,
-     can be represented as RTL.  Doing so lets us schedule insns between
-     it and the rest of the code and also allows delayed branch
-     scheduling to operate in the epilogue.  */
-  thread_prologue_and_epilogue_insns (get_insns ());
-  epilogue_completed = 1;
-
-  if (optimize && flow2_completed)
-    life_analysis (dump_file, PROP_POSTRELOAD);
-}
-
 static void
 rest_of_handle_stack_adjustments (void)
 {
@@ -1369,8 +1351,15 @@ rest_of_handle_flow2 (void)
   if (flag_branch_target_load_optimize)
     rest_of_handle_branch_target_load_optimize ();
 
-  if (!targetm.late_rtl_prologue_epilogue)
-    rest_of_handle_prologue_epilogue ();
+  if (optimize)
+    cleanup_cfg (CLEANUP_EXPENSIVE);
+
+  /* On some machines, the prologue and epilogue code, or parts thereof,
+     can be represented as RTL.  Doing so lets us schedule insns between
+     it and the rest of the code and also allows delayed branch
+     scheduling to operate in the epilogue.  */
+  thread_prologue_and_epilogue_insns (get_insns ());
+  epilogue_completed = 1;
 
   if (optimize)
     rest_of_handle_stack_adjustments ();
@@ -1765,9 +1754,6 @@ rest_of_compilation (void)
     = optimize > 0 && only_leaf_regs_used () && leaf_function_p ();
 #endif
 
-  if (targetm.late_rtl_prologue_epilogue)
-    rest_of_handle_prologue_epilogue ();
-
 #ifdef INSN_SCHEDULING
   if (optimize > 0 && flag_schedule_insns_after_reload)
     rest_of_handle_sched2 ();
index dfaec16f7f356d430069da8ae58aab8e5872cd13..c19f129f6a07df986c361a1fd1212f49848cbdc8 100644 (file)
@@ -658,7 +658,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
        GDB_INV_REF_REGPARM_STABS_LETTER DBX_MEMPARM_STABS_LETTER          \
        PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END          \
        DBX_OUTPUT_GCC_MARKER DBX_FINISH_SYMBOL SDB_GENERATE_FAKE          \
-       NON_SAVING_SETJMP
+       NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \
index 700d5db51ec0dac73e49495097a467dce7e9aa42..063623700e439476b215addde9925e29ddfb0f5b 100644 (file)
@@ -398,7 +398,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 #define TARGET_GIMPLIFY_VA_ARG_EXPR std_gimplify_va_arg_expr
 #define TARGET_PASS_BY_REFERENCE hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false
-#define TARGET_LATE_RTL_PROLOGUE_EPILOGUE false
 #define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size_or_pad
 #define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false
 
@@ -537,7 +536,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
   TARGET_ASM_FILE_START_FILE_DIRECTIVE,                \
   TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,       \
   TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,          \
-  TARGET_LATE_RTL_PROLOGUE_EPILOGUE,           \
 }
 
 #include "hooks.h"
index 49a7f9d7f920fd9170b5f0627f632508c90b7c80..0c2b1b467f0807afde5877d409f808fb554af0e6 100644 (file)
@@ -597,11 +597,6 @@ struct gcc_target
   /* True if #pragma extern_prefix is to be supported.  */
   bool handle_pragma_extern_prefix;
 
-  /* True if the RTL prologue and epilogue should be expanded after all
-     passes that modify the instructions (and not merely reorder them)
-     have been run.  */
-  bool late_rtl_prologue_epilogue;
-
   /* Leave the boolean fields at the end.  */
 };