https://gcc.gnu.org/g:52cd02606b906160bf47001a00b446c35d46f15f
commit r17-1797-g52cd02606b906160bf47001a00b446c35d46f15f Author: Lili Cui <[email protected]> Date: Wed Jun 24 00:05:31 2026 -0700 x86: Increase generic tune branch misprediction cost Increase the branch misprediction scale for generic tuning from COSTS_N_INSNS (2) to COSTS_N_INSNS (2) + 3. Modern CPUs have deeper pipelines, making branch mispredictions more expensive. Increasing this cost encourages if-conversion, avoiding pipeline stalls from mispredicted branches. This improves 544.nab_r (-O2) by 12.7% on GNR and 12.1% on Znver5 with single-copy. gcc/ChangeLog: * config/i386/x86-tune-costs.h (generic_cost): Increase branch mispredict scale from COSTS_N_INSNS (2) to COSTS_N_INSNS (2) + 3. Diff: --- gcc/config/i386/x86-tune-costs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/i386/x86-tune-costs.h b/gcc/config/i386/x86-tune-costs.h index cc9de64394e0..bc3bb6943491 100644 --- a/gcc/config/i386/x86-tune-costs.h +++ b/gcc/config/i386/x86-tune-costs.h @@ -4274,7 +4274,7 @@ struct processor_costs generic_cost = { "16", /* Func alignment. */ 4, /* Small unroll limit. */ 2, /* Small unroll factor. */ - COSTS_N_INSNS (2), /* Branch mispredict scale. */ + COSTS_N_INSNS (2) + 3, /* Branch mispredict scale. */ }; /* core_cost should produce code tuned for Core family of CPUs. */
