diff options
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 10 | ||||
-rw-r--r-- | gcc/passes.c | 32 | ||||
-rw-r--r-- | gcc/system.h | 2 | ||||
-rw-r--r-- | gcc/target-def.h | 2 | ||||
-rw-r--r-- | gcc/target.h | 5 |
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. */ }; |