diff options
author | Hongyu Wang <hongyu.wang@intel.com> | 2024-05-15 11:24:34 +0800 |
---|---|---|
committer | Hongyu Wang <hongyu.wang@intel.com> | 2024-05-29 16:59:59 +0800 |
commit | 499d00127d39ba894b0f7216d73660b380bdc325 (patch) | |
tree | cadb8f989a92c84bd463bbd14d71ce3473e04356 | |
parent | 58b8c87b7fb281e35a6817cc91a292096fdc02dc (diff) | |
download | gcc-499d00127d39ba894b0f7216d73660b380bdc325.zip gcc-499d00127d39ba894b0f7216d73660b380bdc325.tar.gz gcc-499d00127d39ba894b0f7216d73660b380bdc325.tar.bz2 |
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.
-rw-r--r-- | gcc/config/i386/i386-options.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc index 78602a1..f2cecc0 100644 --- a/gcc/config/i386/i386-options.cc +++ b/gcc/config/i386/i386-options.cc @@ -1916,11 +1916,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)) @@ -2491,6 +2486,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]; @@ -2526,6 +2523,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); |