Turn SECONDARY_MEMORY_NEEDED into a hook

Programming / Compilers / GCC - rsandifo [138bc75d-0d04-0410-961f-82ee72b054a4] - 13 September 2017 13:05 EDT

Since the patch is going through all the definitions anyway, it seemed like a good opportunity to put the mode argument first, to match the order for register_move_cost.

2017-09-13 Richard Sandiford Alan Hayward David Sherwood

gcc/
- target.def (secondary_memory_needed): New hook. (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED instead of SECONDARY_MEMORY_NEEDED. (secondary_memory_needed_mode): Likewise.
- hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
- hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
- doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with... (TARGET_SECONDARY_MEMORY_NEEDED): ...this. (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
- doc/tm.texi: Regenerate.
- config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/alpha/alpha.c (alpha_secondary_memory_needed): New function. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
- config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
- config/i386/i386.c (inline_secondary_memory_needed): Put the mode argument first and change the reg_class arguments to reg_class_t. (ix86_secondary_memory_needed): Likewise. Remove the strict parameter. Make static. Update the call to inline_secondary_memory_needed. (ix86_register_move_cost): Update the call to inline_secondary_memory_needed. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
- config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
- config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED in comment.
- config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
- config/mips/mips.c (mips_secondary_memory_needed): Make static and match hook interface. Add comment from mips.h. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
- config/mmix/mmix.md (truncdfsf2): Refer to TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED in comment.
- config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to... (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
- config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. (pa_secondary_memory_needed): New function.
- config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
- config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. (pdp11_secondary_memory_needed): Make static and match hook interface.
- config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/powerpcspe/powerpcspe-protos.h (rs6000_secondary_memory_needed_ptr): Delete.
- config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr): Delete. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. (rs6000_option_override_internal): Assign to targetm.secondary_memory_needed rather than rs6000_secondary_memory_needed_ptr. (rs6000_secondary_memory_needed): Match hook interface. (rs6000_debug_secondary_memory_needed): Likewise.
- config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/riscv/riscv.c (riscv_secondary_memory_needed): New function. (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
- config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr): Delete.
- config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. (rs6000_option_override_internal): Assign to targetm.secondary_memory_needed rather than rs6000_secondary_memory_needed_ptr. (rs6000_secondary_memory_needed): Match hook interface. (rs6000_debug_secondary_memory_needed): Likewise.
- config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/s390/s390.c (s390_secondary_memory_needed): New function. (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
- config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
- config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. (sparc_secondary_memory_needed): New function.
- lra-constraints.c (check_and_process_move): Refer to TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED in comment. (curr_insn_transform): Likewise. (process_alt_operands): Use targetm.secondary_memory_needed instead of TARGET_SECONDARY_MEMORY_NEEDED. (check_secondary_memory_needed_p): Likewise. (choose_split_class): Likewise.
- reload.c: Unconditionally include code that was previously conditional on SECONDARY_MEMORY_NEEDED. (push_secondary_reload): Use targetm.secondary_memory_needed instead of TARGET_SECONDARY_MEMORY_NEEDED. (push_reload): Likewise.
- reload1.c: Unconditionally include code that was previously conditional on SECONDARY_MEMORY_NEEDED. (choose_reload_regs): Use targetm.secondary_memory_needed instead of TARGET_SECONDARY_MEMORY_NEEDED. (gen_reload): Likewise.
- system.h (SECONDARY_MEMORY_NEEDED): Poison.

c836e75 Turn SECONDARY_MEMORY_NEEDED into a hook
gcc/ChangeLog | 98 +++++++++++++++++++++++++++++++
gcc/config/alpha/alpha.c | 16 +++++
gcc/config/alpha/alpha.h | 7 ---
gcc/config/i386/i386-protos.h | 2 -
gcc/config/i386/i386.c | 18 +++---
gcc/config/i386/i386.h | 5 --
gcc/config/ia64/ia64.c | 4 +-
gcc/config/ia64/ia64.h | 18 ------
gcc/config/mips/mips-protos.h | 2 -
gcc/config/mips/mips.c | 22 +++++--
gcc/config/mips/mips.h | 13 ----
gcc/config/mmix/mmix.md | 2 +-
gcc/config/pa/pa-64.h | 2 +-
gcc/config/pa/pa.c | 18 ++++++
gcc/config/pdp11/pdp11-protos.h | 2 -
gcc/config/pdp11/pdp11.c | 10 ++--
gcc/config/pdp11/pdp11.h | 4 --
gcc/config/powerpcspe/powerpcspe-protos.h | 3 -
gcc/config/powerpcspe/powerpcspe.c | 30 ++++------
gcc/config/powerpcspe/powerpcspe.h | 8 ---
gcc/config/riscv/riscv.c | 18 +++++-
gcc/config/riscv/riscv.h | 6 --
gcc/config/rs6000/rs6000-protos.h | 3 -
gcc/config/rs6000/rs6000.c | 30 ++++------
gcc/config/rs6000/rs6000.h | 8 ---
gcc/config/s390/s390.c | 31 ++++++++++
gcc/config/s390/s390.h | 23 --------
gcc/config/sparc/sparc.c | 19 ++++++
gcc/config/sparc/sparc.h | 8 ---
gcc/doc/tm.texi | 25 ++++----
gcc/doc/tm.texi.in | 15 +----
gcc/hooks.c | 9 +++
gcc/hooks.h | 3 +
gcc/lra-constraints.c | 41 ++++---------
gcc/reload.c | 31 ++--------
gcc/reload1.c | 31 +++-------
gcc/system.h | 3 +-
gcc/target.def | 16 ++++-
38 files changed, 333 insertions(+), 271 deletions(-)

Upstream: gcc.gnu.org


  • Share