]> git.ipfire.org Git - thirdparty/gcc.git/commit
[i386] restore recompute to override opts after change [PR113719]
authorAlexandre Oliva <oliva@adacore.com>
Thu, 13 Jun 2024 03:12:47 +0000 (00:12 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Wed, 3 Jul 2024 10:44:31 +0000 (07:44 -0300)
commitbf2fc0a27b35de039c3d45e6d7ea9ad0a8a305ba
tree45794a518575f8be7346c5a66f465115e8501917
parent6492c7130d6ae9992298fc3d072e2589d1131376
[i386] restore recompute to override opts after change [PR113719]

The first patch for PR113719 regressed gcc.dg/ipa/iinline-attr.c on
toolchains configured to --enable-frame-pointer, because the
optimization node created within handle_optimize_attribute had
flag_omit_frame_pointer incorrectly set, whereas
default_optimization_node didn't.  With this difference,
can_inline_edge_by_limits_p flagged an optimization mismatch and we
refused to inline the function that had a redundant optimization flag
into one that didn't, which is exactly what is tested for there.

This patch restores the calls to ix86_default_align and
ix86_recompute_optlev_based_flags that used to be, and ought to be,
issued during TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE, but preserves the
intent of the original change, of having those functions called at
different spots within ix86_option_override_internal.  To that end,
the remaining bits were refactored into a separate function, that was
in turn adjusted to operate on explicitly-passed opts and opts_set,
rather than going for their global counterparts.

for  gcc/ChangeLog

PR target/113719
* config/i386/i386-options.cc
(ix86_override_options_after_change_1): Add opts and opts_set
parms, operate on them, after factoring out of...
(ix86_override_options_after_change): ... this.  Restore calls
of ix86_default_align and ix86_recompute_optlev_based_flags.
(ix86_option_override_internal): Call the factored-out bits.
gcc/config/i386/i386-options.cc