Commit 033797e2 by Eric Botcazou Committed by Eric Botcazou

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
parent 278d4cc4
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.
......
......@@ -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
......
......@@ -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 ();
......
......@@ -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 \
......
......@@ -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"
......
......@@ -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. */
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment