aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2004-11-24 09:39:34 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2004-11-24 08:39:34 +0000
commit033797e23c3723dd1cc7911981e3747cc0dda6e3 (patch)
treeeee54f5749132c980a4ba899e0922e67ffb37f13
parent278d4cc485b5d7a133e5ec34022d92d06d7da9c9 (diff)
downloadgcc-033797e23c3723dd1cc7911981e3747cc0dda6e3.zip
gcc-033797e23c3723dd1cc7911981e3747cc0dda6e3.tar.gz
gcc-033797e23c3723dd1cc7911981e3747cc0dda6e3.tar.bz2
target.h (late_rtl_prologue_epilogue): Remove.
* 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
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/doc/tm.texi10
-rw-r--r--gcc/passes.c32
-rw-r--r--gcc/system.h2
-rw-r--r--gcc/target-def.h2
-rw-r--r--gcc/target.h5
6 files changed, 21 insertions, 41 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c29f0f..ada5b33 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 409559e..339a41d 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -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
diff --git a/gcc/passes.c b/gcc/passes.c
index cb81eb7..36b13d1 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -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 ();
diff --git a/gcc/system.h b/gcc/system.h
index dfaec16..c19f129 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -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 \
diff --git a/gcc/target-def.h b/gcc/target-def.h
index 700d5db..0636237 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -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"
diff --git a/gcc/target.h b/gcc/target.h
index 49a7f9d..0c2b1b4 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -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. */
};