[gcc r14-10262] i386: Fix ix86_option override after change [PR 113719]
Hongyu Wang
hongyuw@gcc.gnu.org
Fri May 31 03:11:15 GMT 2024
https://gcc.gnu.org/g:cd161b335c2723d0dce1cab00ad216b423ec2767
commit r14-10262-gcd161b335c2723d0dce1cab00ad216b423ec2767
Author: Hongyu Wang <hongyu.wang@intel.com>
Date: Wed May 15 11:24:34 2024 +0800
i386: Fix ix86_option override after change [PR 113719]
In ix86_override_options_after_change, calls to ix86_default_align
and ix86_recompute_optlev_based_flags will cause mismatched target
opt_set when doing cl_optimization_restore. Move them back to
ix86_option_override_internal to solve the issue.
gcc/ChangeLog:
PR target/113719
* config/i386/i386-options.cc (ix86_override_options_after_change):
Remove call to ix86_default_align and
ix86_recompute_optlev_based_flags.
(ix86_option_override_internal): Call ix86_default_align and
ix86_recompute_optlev_based_flags.
(cherry picked from commit 499d00127d39ba894b0f7216d73660b380bdc325)
Diff:
---
gcc/config/i386/i386-options.cc | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index ac48b5c61c4..d97464f2c74 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -1930,11 +1930,6 @@ ix86_recompute_optlev_based_flags (struct gcc_options *opts,
void
ix86_override_options_after_change (void)
{
- /* Default align_* from the processor table. */
- ix86_default_align (&global_options);
-
- ix86_recompute_optlev_based_flags (&global_options, &global_options_set);
-
/* Disable unrolling small loops when there's explicit
-f{,no}unroll-loop. */
if ((OPTION_SET_P (flag_unroll_loops))
@@ -2530,6 +2525,8 @@ ix86_option_override_internal (bool main_args_p,
set_ix86_tune_features (opts, ix86_tune, opts->x_ix86_dump_tunes);
+ ix86_recompute_optlev_based_flags (opts, opts_set);
+
ix86_override_options_after_change ();
ix86_tune_cost = processor_cost_table[ix86_tune];
@@ -2565,6 +2562,9 @@ ix86_option_override_internal (bool main_args_p,
|| TARGET_64BIT_P (opts->x_ix86_isa_flags))
opts->x_ix86_regparm = REGPARM_MAX;
+ /* Default align_* from the processor table. */
+ ix86_default_align (&global_options);
+
/* Provide default for -mbranch-cost= value. */
SET_OPTION_IF_UNSET (opts, opts_set, ix86_branch_cost,
ix86_tune_cost->branch_cost);
More information about the Gcc-cvs
mailing list