diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2015-04-28 04:45:12 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2015-04-28 04:45:12 +0000 |
commit | 5251b8b3505902ee4c5f49d8c58c42f2950ba6c1 (patch) | |
tree | 097a4454cae0a6804ad11961c8971610f939615b | |
parent | 08b7ff1e1dda0bb35741ad8156bf31ba5151ddea (diff) | |
download | gcc-5251b8b3505902ee4c5f49d8c58c42f2950ba6c1.zip gcc-5251b8b3505902ee4c5f49d8c58c42f2950ba6c1.tar.gz gcc-5251b8b3505902ee4c5f49d8c58c42f2950ba6c1.tar.bz2 |
always define HAVE_epilogue
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* 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
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/alias.c | 10 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 6 | ||||
-rw-r--r-- | gcc/defaults.h | 10 | ||||
-rw-r--r-- | gcc/df-scan.c | 3 | ||||
-rw-r--r-- | gcc/function.c | 12 | ||||
-rw-r--r-- | gcc/reorg.c | 2 | ||||
-rw-r--r-- | gcc/toplev.c | 3 |
8 files changed, 35 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 578b95a..6eeba5f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,17 @@ 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> + * 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 <tbsaunde+gcc@tbsaunde.org> + * bb-reorder.c (HAVE_return): Don't check if its undefined. * defaults.h (gen_simple_return): New function. (gen_simple_return): Likewise. diff --git a/gcc/alias.c b/gcc/alias.c index 8f48660..7d9a3d9 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 7027502..8a75044 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 d3da328..4c87191 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 9f0e47f..a990a7b 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 561a1c5..14afc53 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 a44d4a3..e9af7b7 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 b06eed3..38de36b 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 |