From 5251b8b3505902ee4c5f49d8c58c42f2950ba6c1 Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Tue, 28 Apr 2015 04:45:12 +0000 Subject: [PATCH] always define HAVE_epilogue gcc/ChangeLog: 2015-04-27 Trevor Saunders * defaults.h (gen_epilogue): New function. (HAVE_epilogue): Add default definition to false. * alias.c (init_alias_analysis): don't check if HAVE_epilogue is defined. * cfgrtl.c (cfg_layout_finalize): Likewise. * df-scan.c: Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. (reposition_prologue_and_epilogue_notes): Likewise. * reorg.c (find_end_label): Likewise. * toplev.c: Likewise. From-SVN: r222506 --- gcc/ChangeLog | 12 ++++++++++++ gcc/alias.c | 10 +++++++--- gcc/cfgrtl.c | 6 +----- gcc/defaults.h | 10 ++++++++++ gcc/df-scan.c | 3 --- gcc/function.c | 12 +++++------- gcc/reorg.c | 2 -- gcc/toplev.c | 3 --- 8 files changed, 35 insertions(+), 23 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 578b95ad10f..6eeba5fde87 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2015-04-27 Trevor Saunders + + * defaults.h (gen_epilogue): New function. + * alias.c (init_alias_analysis): don't check if HAVE_epilogue is + defined. + * cfgrtl.c (cfg_layout_finalize): Likewise. + * df-scan.c: Likewise. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + (reposition_prologue_and_epilogue_notes): Likewise. + * reorg.c (find_end_label): Likewise. + * toplev.c: Likewise. + 2015-04-27 Trevor Saunders * bb-reorder.c (HAVE_return): Don't check if its undefined. diff --git a/gcc/alias.c b/gcc/alias.c index 8f486600063..7d9a3d9113d 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -2925,15 +2925,19 @@ init_alias_analysis (void) { rtx note, set; -#if defined (HAVE_prologue) || defined (HAVE_epilogue) +#if defined (HAVE_prologue) + static const bool prologue = true; +#else + static const bool prologue = false; +#endif + /* The prologue/epilogue insns are not threaded onto the insn chain until after reload has completed. Thus, there is no sense wasting time checking if INSN is in the prologue/epilogue until after reload has completed. */ - if (reload_completed + if ((prologue || HAVE_epilogue) && reload_completed && prologue_epilogue_contains (insn)) continue; -#endif /* If this insn has a noalias note, process it, Otherwise, scan for sets. A simple set will have no side effects diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 702750252fa..8a750448866 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -4339,11 +4339,7 @@ cfg_layout_finalize (void) #endif force_one_exit_fallthru (); rtl_register_cfg_hooks (); - if (reload_completed -#ifdef HAVE_epilogue - && !HAVE_epilogue -#endif - ) + if (reload_completed && !HAVE_epilogue) fixup_fallthru_exit_predecessor (); fixup_reorder_chain (); diff --git a/gcc/defaults.h b/gcc/defaults.h index d3da328ee47..4c8719163e2 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1418,6 +1418,16 @@ gen_return () } #endif +#ifndef HAVE_epilogue +#define HAVE_epilogue 0 +static inline rtx +gen_epilogue () +{ + gcc_unreachable (); + return NULL; +} +#endif + #endif /* GCC_INSN_FLAGS_H */ #endif /* ! GCC_DEFAULTS_H */ diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 9f0e47fe48e..a990a7b166b 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -62,9 +62,6 @@ along with GCC; see the file COPYING3. If not see typedef struct df_mw_hardreg *df_mw_hardreg_ptr; -#ifndef HAVE_epilogue -#define HAVE_epilogue 0 -#endif #ifndef HAVE_prologue #define HAVE_prologue 0 #endif diff --git a/gcc/function.c b/gcc/function.c index 561a1c5087f..14afc53c603 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6066,7 +6066,6 @@ thread_prologue_and_epilogue_insns (void) if (exit_fallthru_edge == NULL) goto epilogue_done; -#ifdef HAVE_epilogue if (HAVE_epilogue) { start_sequence (); @@ -6090,7 +6089,6 @@ thread_prologue_and_epilogue_insns (void) set_return_jump_label (returnjump); } else -#endif { basic_block cur_bb; @@ -6183,7 +6181,6 @@ epilogue_done: } #endif -#ifdef HAVE_epilogue if (epilogue_end) { rtx_insn *insn, *next; @@ -6201,7 +6198,6 @@ epilogue_done: reorder_insns (insn, insn, PREV_INSN (epilogue_end)); } } -#endif bitmap_clear (&bb_flags); @@ -6217,8 +6213,11 @@ epilogue_done: void reposition_prologue_and_epilogue_notes (void) { -#if defined (HAVE_prologue) || defined (HAVE_epilogue) \ - || defined (HAVE_sibcall_epilogue) +#if ! defined (HAVE_prologue) && ! defined (HAVE_sibcall_epilogue) + if (!HAVE_epilogue) + return; +#endif + /* Since the hash table is created on demand, the fact that it is non-null is a signal that it is non-empty. */ if (prologue_insn_hash != NULL) @@ -6315,7 +6314,6 @@ reposition_prologue_and_epilogue_notes (void) } } } -#endif /* HAVE_prologue or HAVE_epilogue */ } /* Returns the name of function declared by FNDECL. */ diff --git a/gcc/reorg.c b/gcc/reorg.c index a44d4a394b0..e9af7b7bd4a 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -484,14 +484,12 @@ find_end_label (rtx kind) } else { -#ifdef HAVE_epilogue if (HAVE_epilogue && ! HAVE_return) /* The RETURN insn has its delay slot filled so we cannot emit the label just before it. Since we already have an epilogue and cannot emit a new RETURN, we cannot emit the label at all. */ return NULL; -#endif /* HAVE_epilogue */ /* Otherwise, make a new label and emit a RETURN and BARRIER, if needed. */ diff --git a/gcc/toplev.c b/gcc/toplev.c index b06eed3e997..38de36b107b 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -128,9 +128,6 @@ along with GCC; see the file COPYING3. If not see declarations for e.g. AIX 4.x. */ #endif -#ifndef HAVE_epilogue -#define HAVE_epilogue 0 -#endif #ifndef HAVE_prologue #define HAVE_prologue 0 #endif -- 2.30.2