Message ID | b0b52629100d9587f1cce915fdf65b5e6dc03497.1473715747.git.segher@kernel.crashing.org |
---|---|
State | New |
Headers | show |
On 09/13/2016 12:22 AM, Segher Boessenkool wrote: > This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to > every target that didn't yet override the hook. No functional change. This patch series makes very little sense to me. Adding 35 new instances of a hook definition so you can delete four others? Bernd
On Tue, Sep 13, 2016 at 12:26:04PM +0200, Bernd Schmidt wrote: > On 09/13/2016 12:22 AM, Segher Boessenkool wrote: > >This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to > >every target that didn't yet override the hook. No functional change. > > This patch series makes very little sense to me. Adding 35 new instances > of a hook definition so you can delete four others? No, the purpose is to default to LRA instead of reload. Everything should switch to LRA eventually, so over time we need to define the macro in fewer and fewer targets, until one day whatever remains can all be ripped out. Yes, many targets need the hook definition after this series; that should stick out like a sore thumb, help to remind people to change their target to use LRA (not a huge amount of work for most, although it can get tricky). And all new ports should use LRA, so it should be the default. Wrt "delete only four"... There are five or six or so more that use LRA, but those can all be switched to use old reload instead. Some day that will be turned off, too. Segher
On Tue, Sep 13, 2016 at 12:03 PM, Segher Boessenkool <segher@kernel.crashing.org> wrote: > On Tue, Sep 13, 2016 at 12:26:04PM +0200, Bernd Schmidt wrote: >> On 09/13/2016 12:22 AM, Segher Boessenkool wrote: >> >This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to >> >every target that didn't yet override the hook. No functional change. >> >> This patch series makes very little sense to me. Adding 35 new instances >> of a hook definition so you can delete four others? > > No, the purpose is to default to LRA instead of reload. Everything should > switch to LRA eventually, so over time we need to define the macro in fewer > and fewer targets, until one day whatever remains can all be ripped out. > > Yes, many targets need the hook definition after this series; that should > stick out like a sore thumb, help to remind people to change their target > to use LRA (not a huge amount of work for most, although it can get tricky). > > And all new ports should use LRA, so it should be the default. Since nobody else has said anything on this patch besides Bernd, I am going to say yes please. This patch in my mind is the right way forward. In the same new ports should not be cc0 ports (though I know some folks try that every once in a while). Thanks, Andrew > > Wrt "delete only four"... There are five or six or so more that use LRA, > but those can all be switched to use old reload instead. Some day that > will be turned off, too. > > > Segher
On 9/13/16 9:26 AM, Andrew Pinski wrote: > On Tue, Sep 13, 2016 at 12:03 PM, Segher Boessenkool >> And all new ports should use LRA, so it should be the default. > > Since nobody else has said anything on this patch besides Bernd, I am > going to say yes please. This patch in my mind is the right way > forward. In the same new ports should not be cc0 ports (though I know > some folks try that every once in a while). + 1! If we don't make LRA the default, it will be very easy for new ports to default to reload, since they'll have to actively force usage of LRA and I can see that point being missed even if we have it documented. We don't want new ports to find out they need to enable LRA during their patch submission, since that entails a huge amount of retesting. It should be LRA from day 1 for them. Peter
On 09/13/2016 04:26 AM, Bernd Schmidt wrote: > On 09/13/2016 12:22 AM, Segher Boessenkool wrote: >> This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to >> every target that didn't yet override the hook. No functional change. > > This patch series makes very little sense to me. Adding 35 new instances > of a hook definition so you can delete four others? I think a large part of the benefit here is the mental change that LRA is the default now and that it's fairly easy to find ports which haven't been converted. Jeff
On 09/13/2016 09:45 AM, Peter Bergner wrote: > On 9/13/16 9:26 AM, Andrew Pinski wrote: >> On Tue, Sep 13, 2016 at 12:03 PM, Segher Boessenkool >>> And all new ports should use LRA, so it should be the default. >> >> Since nobody else has said anything on this patch besides Bernd, I am >> going to say yes please. This patch in my mind is the right way >> forward. In the same new ports should not be cc0 ports (though I know >> some folks try that every once in a while). > > + 1! > > If we don't make LRA the default, it will be very easy for new ports > to default to reload, since they'll have to actively force usage of > LRA and I can see that point being missed even if we have it documented. > We don't want new ports to find out they need to enable LRA during > their patch submission, since that entails a huge amount of retesting. > It should be LRA from day 1 for them. Right. We want ports to start development using LRA from day 1. The big question in my mind is whether or not we want to make it harder for ports to use reload :-) Jeff
On Tue, 13 Sep 2016, Segher Boessenkool wrote: > Yes, many targets need the hook definition after this series; that should > stick out like a sore thumb, help to remind people to change their target > to use LRA (not a huge amount of work for most, although it can get tricky). I would also encourage an email to all the maintainers of ports using reload, CC gcc@, pointing out that moving is desirable and with pointers to guidance on how to do the move.
On Sep 13, 2016, at 9:07 AM, Jeff Law <law@redhat.com> wrote: > > On 09/13/2016 09:45 AM, Peter Bergner wrote: >> On 9/13/16 9:26 AM, Andrew Pinski wrote: >>> On Tue, Sep 13, 2016 at 12:03 PM, Segher Boessenkool >>>> And all new ports should use LRA, so it should be the default. >>> >>> I am going to say yes please. This patch in my mind is the right way >>> forward. >> >> + 1! >> >> should be LRA from day 1 for them. > Right. We want ports to start development using LRA from day 1. As the author of a few new ports, let me say that I have wanted the LRA default for a while now. I was amazed that this wasn't already the case. I personally favor the patch series.
On Tue, Sep 13, 2016 at 04:15:45PM +0000, Joseph Myers wrote: > On Tue, 13 Sep 2016, Segher Boessenkool wrote: > > > Yes, many targets need the hook definition after this series; that should > > stick out like a sore thumb, help to remind people to change their target > > to use LRA (not a huge amount of work for most, although it can get tricky). > > I would also encourage an email to all the maintainers of ports using > reload, CC gcc@, pointing out that moving is desirable and with pointers > to guidance on how to do the move. Yeah. I'll also do a news entry. Pointers to guidance... I'll create a wiki page so that we can collect everyone's experience :-) Segher
On 09/12/2016 04:22 PM, Segher Boessenkool wrote: > This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to > every target that didn't yet override the hook. No functional change. > > > Segher > > > 2016-09-12 Segher Boessenkool <segher@kernel.crashing.org> > > * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to > hook_bool_void_false. > * config/avr/avr.c: Ditto. > * config/bfin/bfin.c: Ditto. > * config/c6x/c6x.c: Ditto. > * config/cr16/cr16.c: Ditto. > * config/cris/cris.c: Ditto. > * config/epiphany/epiphany.c: Ditto. > * config/fr30/fr30.c: Ditto. > * config/frv/frv.c: Ditto. > * config/h8300/h8300.c: Ditto. > * config/ia64/ia64.c: Ditto. > * config/iq2000/iq2000.c: Ditto. > * config/lm32/lm32.c: Ditto. > * config/m32c/m32c.c: Ditto. > * config/m32r/m32r.c: Ditto. > * config/m68k/m68k.c: Ditto. > * config/mcore/mcore.c: Ditto. > * config/microblaze/microblaze.c: Ditto. > * config/mmix/mmix.c: Ditto. > * config/mn10300/mn10300.c: Ditto. > * config/moxie/moxie.c: Ditto. > * config/msp430/msp430.c: Ditto. > * config/nios2/nios2.c: Ditto. > * config/nvptx/nvptx.c: Ditto. > * config/pa/pa.c: Ditto. > * config/pdp11/pdp11.c: Ditto. > * config/rl78/rl78.c: Ditto. > * config/sparc/sparc.c: Ditto. > * config/spu/spu.c: Ditto. > * config/stormy16/stormy16.c: Ditto. > * config/tilegx/tilegx.c: Ditto. > * config/tilepro/tilepro.c: Ditto. > * config/v850/v850.c: Ditto. > * config/vax/vax.c: Ditto. > * config/visium/visium.c: Ditto. > * config/xtensa/xtensa.c: Ditto. I believe a doc update of some kind is in order. With the doc update the entire series is OK. jeff
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 702cd27..0f878c1 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -10039,6 +10039,9 @@ alpha_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update) #define TARGET_MANGLE_TYPE alpha_mangle_type #endif +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P alpha_legitimate_address_p diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index f6d7342..148a61d 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -13843,6 +13843,9 @@ avr_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg, #undef TARGET_CONVERT_TO_TYPE #define TARGET_CONVERT_TO_TYPE avr_convert_to_type +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_ADDR_SPACE_SUBSET_P #define TARGET_ADDR_SPACE_SUBSET_P avr_addr_space_subset_p diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c index 086d548..e1e3945 100644 --- a/gcc/config/bfin/bfin.c +++ b/gcc/config/bfin/bfin.c @@ -5805,6 +5805,9 @@ bfin_conditional_register_usage (void) #undef TARGET_RETURN_IN_MEMORY #define TARGET_RETURN_IN_MEMORY bfin_return_in_memory +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P bfin_legitimate_address_p diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index d87d0cc..2f80213 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -6749,6 +6749,9 @@ c6x_debug_unwind_info (void) #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P c6x_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_IN_SMALL_DATA_P #define TARGET_IN_SMALL_DATA_P c6x_in_small_data_p #undef TARGET_ASM_SELECT_RTX_SECTION diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c index 141b8bc..2f75ca2 100644 --- a/gcc/config/cr16/cr16.c +++ b/gcc/config/cr16/cr16.c @@ -172,6 +172,9 @@ static void cr16_print_operand_address (FILE *, machine_mode, rtx); #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P cr16_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + /* Returning function value. */ #undef TARGET_FUNCTION_VALUE #define TARGET_FUNCTION_VALUE cr16_function_value diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 7a2ac81..2038193 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -212,6 +212,9 @@ int cris_cpu_version = CRIS_DEFAULT_CPU_VERSION; #undef TARGET_INIT_LIBFUNCS #define TARGET_INIT_LIBFUNCS cris_init_libfuncs +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P cris_legitimate_address_p diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c index 25cbdfc..b871ccb 100644 --- a/gcc/config/epiphany/epiphany.c +++ b/gcc/config/epiphany/epiphany.c @@ -102,6 +102,8 @@ static rtx_insn *frame_insn (rtx); #define TARGET_SCHED_ISSUE_RATE epiphany_issue_rate #define TARGET_SCHED_ADJUST_COST epiphany_adjust_cost +#define TARGET_LRA_P hook_bool_void_false + #define TARGET_LEGITIMATE_ADDRESS_P epiphany_legitimate_address_p #define TARGET_SECONDARY_RELOAD epiphany_secondary_reload diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c index f4fef2b..741a013 100644 --- a/gcc/config/fr30/fr30.c +++ b/gcc/config/fr30/fr30.c @@ -179,6 +179,9 @@ static int fr30_num_arg_regs (machine_mode, const_tree); #undef TARGET_CAN_ELIMINATE #define TARGET_CAN_ELIMINATE fr30_can_eliminate +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_ASM_TRAMPOLINE_TEMPLATE #define TARGET_ASM_TRAMPOLINE_TEMPLATE fr30_asm_trampoline_template #undef TARGET_TRAMPOLINE_INIT diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index 4bfa827..60c3863 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -491,6 +491,9 @@ static bool frv_class_likely_spilled_p (reg_class_t); #undef TARGET_SECONDARY_RELOAD #define TARGET_SECONDARY_RELOAD frv_secondary_reload +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P frv_legitimate_address_p diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 1818684..db8eeab 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -6097,6 +6097,9 @@ h8300_trampoline_init (rtx m_tramp, tree fndecl, rtx cxt) #undef TARGET_HARD_REGNO_SCRATCH_OK #define TARGET_HARD_REGNO_SCRATCH_OK h8300_hard_regno_scratch_ok +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P h8300_legitimate_address_p diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index ebd2c86..5f0bf43 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -603,6 +603,9 @@ static const struct attribute_spec ia64_attribute_table[] = #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P ia64_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_CANNOT_FORCE_CONST_MEM #define TARGET_CANNOT_FORCE_CONST_MEM ia64_cannot_force_const_mem diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c index 73b9cdb..c7e5f19 100644 --- a/gcc/config/iq2000/iq2000.c +++ b/gcc/config/iq2000/iq2000.c @@ -237,6 +237,9 @@ static bool iq2000_print_operand_punct_valid_p (unsigned char code); #undef TARGET_EXPAND_BUILTIN_VA_START #define TARGET_EXPAND_BUILTIN_VA_START iq2000_va_start +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P iq2000_legitimate_address_p diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c index 4a8079f..8a10220 100644 --- a/gcc/config/lm32/lm32.c +++ b/gcc/config/lm32/lm32.c @@ -99,6 +99,8 @@ static void lm32_function_arg_advance (cumulative_args_t cum, #define TARGET_MAX_ANCHOR_OFFSET 0x7fff #undef TARGET_CAN_ELIMINATE #define TARGET_CAN_ELIMINATE lm32_can_eliminate +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P lm32_legitimate_address_p diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index 6f6d7e4..1db1ef7 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -1632,6 +1632,9 @@ m32c_trampoline_init (rtx m_tramp, tree fndecl, rtx chainval) #undef A0 } +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + /* Addressing Modes */ /* The r8c/m32c family supports a wide range of non-orthogonal diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index b40c53c..943f8c7 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -119,6 +119,9 @@ static const struct attribute_spec m32r_attribute_table[] = #undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P #define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P m32r_attribute_identifier +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P m32r_legitimate_address_p #undef TARGET_LEGITIMIZE_ADDRESS diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 7cee0f5..a104193 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -289,6 +289,9 @@ static void m68k_init_sync_libfuncs (void) ATTRIBUTE_UNUSED; #define TARGET_ASM_OUTPUT_DWARF_DTPREL m68k_output_dwarf_dtprel #endif +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P m68k_legitimate_address_p diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c index c9d0506..3afe42c 100644 --- a/gcc/config/mcore/mcore.c +++ b/gcc/config/mcore/mcore.c @@ -232,6 +232,9 @@ static const struct attribute_spec mcore_attribute_table[] = #undef TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P #define TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P mcore_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_WARN_FUNC_RETURN #define TARGET_WARN_FUNC_RETURN mcore_warn_func_return diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index 735dff5..e32fa0e 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -3810,6 +3810,9 @@ microblaze_machine_dependent_reorg (void) #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P microblaze_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_FRAME_POINTER_REQUIRED #define TARGET_FRAME_POINTER_REQUIRED microblaze_frame_pointer_required diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c index 3fffdc2..bf06e3b 100644 --- a/gcc/config/mmix/mmix.c +++ b/gcc/config/mmix/mmix.c @@ -260,6 +260,9 @@ static void mmix_conditional_register_usage (void); #undef TARGET_PREFERRED_OUTPUT_RELOAD_CLASS #define TARGET_PREFERRED_OUTPUT_RELOAD_CLASS mmix_preferred_output_reload_class +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P mmix_legitimate_address_p #undef TARGET_LEGITIMATE_CONSTANT_P diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index 6e590cd..e384796 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -3379,6 +3379,9 @@ mn10300_reorg (void) #undef TARGET_CASE_VALUES_THRESHOLD #define TARGET_CASE_VALUES_THRESHOLD mn10300_case_values_threshold +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P mn10300_legitimate_address_p #undef TARGET_DELEGITIMIZE_ADDRESS diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c index 4e38a57..9d376f1 100644 --- a/gcc/config/moxie/moxie.c +++ b/gcc/config/moxie/moxie.c @@ -624,6 +624,9 @@ moxie_legitimate_address_p (machine_mode mode ATTRIBUTE_UNUSED, #undef TARGET_FUNCTION_ARG_ADVANCE #define TARGET_FUNCTION_ARG_ADVANCE moxie_function_arg_advance +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P #define TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P moxie_legitimate_address_p diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c index dba4d19..8b44e8c 100644 --- a/gcc/config/msp430/msp430.c +++ b/gcc/config/msp430/msp430.c @@ -1490,6 +1490,9 @@ msp430_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, return addr; } +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + /* Addressing Modes */ #undef TARGET_LEGITIMATE_ADDRESS_P diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c index 18fcbb3..632adad 100644 --- a/gcc/config/nios2/nios2.c +++ b/gcc/config/nios2/nios2.c @@ -5038,6 +5038,9 @@ nios2_adjust_reg_alloc_order (void) #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P nios2_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_PREFERRED_RELOAD_CLASS #define TARGET_PREFERRED_RELOAD_CLASS nios2_preferred_reload_class diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 23b5078..16e04a4 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -4856,6 +4856,9 @@ nvptx_goacc_reduction (gcall *call) #undef TARGET_ATTRIBUTE_TABLE #define TARGET_ATTRIBUTE_TABLE nvptx_attribute_table +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P nvptx_legitimate_address_p diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 251c1ad..18b7324 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -397,6 +397,9 @@ static size_t n_deferred_plabels = 0; #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P pa_legitimate_address_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + struct gcc_target targetm = TARGET_INITIALIZER; /* Parse the -mfixed-range= option string. */ diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c index 35d57c7..7fa08cb 100644 --- a/gcc/config/pdp11/pdp11.c +++ b/gcc/config/pdp11/pdp11.c @@ -208,6 +208,9 @@ static bool pdp11_scalar_mode_supported_p (machine_mode); #undef TARGET_PREFERRED_OUTPUT_RELOAD_CLASS #define TARGET_PREFERRED_OUTPUT_RELOAD_CLASS pdp11_preferred_output_reload_class +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P pdp11_legitimate_address_p diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index 3ddb198..ecbf6f9 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -1071,6 +1071,9 @@ rl78_is_legitimate_constant (machine_mode mode ATTRIBUTE_UNUSED, rtx x ATTRIBUTE return true; } +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P #define TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P rl78_as_legitimate_address diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 254b722..1932b1b 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -827,6 +827,9 @@ char sparc_hard_reg_printed[8]; #define TARGET_MANGLE_TYPE sparc_mangle_type #endif +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P sparc_legitimate_address_p diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c index fc791f5..28173e5 100644 --- a/gcc/config/spu/spu.c +++ b/gcc/config/spu/spu.c @@ -7153,6 +7153,9 @@ static const struct attribute_spec spu_attribute_table[] = /* TARGET overrides. */ +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_ADDR_SPACE_POINTER_MODE #define TARGET_ADDR_SPACE_POINTER_MODE spu_addr_space_pointer_mode diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index 50af15b..1eb95f5 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -2677,6 +2677,9 @@ xstormy16_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) #undef TARGET_PREFERRED_OUTPUT_RELOAD_CLASS #define TARGET_PREFERRED_OUTPUT_RELOAD_CLASS xstormy16_preferred_reload_class +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P xstormy16_legitimate_address_p #undef TARGET_MODE_DEPENDENT_ADDRESS_P diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c index 5508ed8..d743c63 100644 --- a/gcc/config/tilegx/tilegx.c +++ b/gcc/config/tilegx/tilegx.c @@ -5625,6 +5625,9 @@ tilegx_file_end (void) #undef TARGET_LEGITIMATE_CONSTANT_P #define TARGET_LEGITIMATE_CONSTANT_P tilegx_legitimate_constant_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P tilegx_legitimate_address_p diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c index 7237a60..33e4993 100644 --- a/gcc/config/tilepro/tilepro.c +++ b/gcc/config/tilepro/tilepro.c @@ -5017,6 +5017,9 @@ tilepro_file_end (void) #undef TARGET_LEGITIMATE_CONSTANT_P #define TARGET_LEGITIMATE_CONSTANT_P tilepro_legitimate_constant_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P tilepro_legitimate_address_p diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index e0e4215..f1716d1 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -3340,6 +3340,9 @@ v850_gen_movdi (rtx * operands) #undef TARGET_LEGITIMATE_CONSTANT_P #define TARGET_LEGITIMATE_CONSTANT_P v850_legitimate_constant_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P #define TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P v850_legitimate_address_p diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c index 804f0c7..06ab571 100644 --- a/gcc/config/vax/vax.c +++ b/gcc/config/vax/vax.c @@ -96,6 +96,9 @@ static bool vax_mode_dependent_address_p (const_rtx, addr_space_t); #undef TARGET_BUILTIN_SETJMP_FRAME_VALUE #define TARGET_BUILTIN_SETJMP_FRAME_VALUE vax_builtin_setjmp_frame_value +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P vax_legitimate_address_p #undef TARGET_MODE_DEPENDENT_ADDRESS_P diff --git a/gcc/config/visium/visium.c b/gcc/config/visium/visium.c index 360a674..af58f99 100644 --- a/gcc/config/visium/visium.c +++ b/gcc/config/visium/visium.c @@ -264,6 +264,9 @@ static unsigned int visium_reorg (void); #undef TARGET_LEGITIMATE_CONSTANT_P #define TARGET_LEGITIMATE_CONSTANT_P visium_legitimate_constant_p +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P visium_legitimate_address_p diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index 917ea94..07c9e8f 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -264,6 +264,9 @@ static void xtensa_conditional_register_usage (void); #undef TARGET_CANNOT_FORCE_CONST_MEM #define TARGET_CANNOT_FORCE_CONST_MEM xtensa_cannot_force_const_mem +#undef TARGET_LRA_P +#define TARGET_LRA_P hook_bool_void_false + #undef TARGET_LEGITIMATE_ADDRESS_P #define TARGET_LEGITIMATE_ADDRESS_P xtensa_legitimate_address_p