From: Max Filippov Date: Sat, 20 Jul 2024 00:27:03 +0000 (-0700) Subject: gcc: xtensa: disable late-combine by default X-Git-Tag: basepoints/gcc-16~7168 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d5d6e61500411ea9043258e300d5b0f57e5c391;p=thirdparty%2Fgcc.git gcc: xtensa: disable late-combine by default gcc/ * config/xtensa/xtensa.cc (xtensa_option_override_after_change): New function. (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define as xtensa_option_override_after_change. (xtensa_option_override): Call xtensa_option_override_after_change. --- diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc index d49d224466a..10d964b51a9 100644 --- a/gcc/config/xtensa/xtensa.cc +++ b/gcc/config/xtensa/xtensa.cc @@ -114,6 +114,7 @@ struct GTY(()) machine_function }; static void xtensa_option_override (void); +static void xtensa_option_override_after_change (void); static enum internal_test map_test_to_internal_test (enum rtx_code); static rtx gen_int_relational (enum rtx_code, rtx, rtx); static rtx gen_float_relational (enum rtx_code, rtx, rtx); @@ -303,6 +304,9 @@ static rtx xtensa_delegitimize_address (rtx); #undef TARGET_OPTION_OVERRIDE #define TARGET_OPTION_OVERRIDE xtensa_option_override +#undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE +#define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE xtensa_option_override_after_change + #undef TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA #define TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA xtensa_output_addr_const_extra @@ -2988,6 +2992,15 @@ xtensa_option_override (void) the define_insn_and_splits are fixed. */ if (!OPTION_SET_P (flag_late_combine_instructions)) flag_late_combine_instructions = 0; + + xtensa_option_override_after_change (); +} + +static void +xtensa_option_override_after_change (void) +{ + if (!OPTION_SET_P (flag_late_combine_instructions)) + flag_late_combine_instructions = 0; } /* Implement TARGET_HARD_REGNO_NREGS. */