GCC Newspaper
JUNE 15, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
aarch64 Performance Win

Update br_mispredict_factor for generic tunings

The `br_mispredict_factor` for generic AArch64 tunings is updated from 6 to 7, improving performance on SPEC2017 fp rate.

This commit updates the br_mispredict_factor from 6 to 7 for generic AArch64 tunings. Testing revealed that a value of 7 is more suitable, preventing the compiler from rejecting cheaper conditional selects (csels) in favor of conditional branches in some workloads. On an Olympus core, this change improves SPEC2017 floating-point rate geomean by 1% with no significant regressions.

In Details

This commit modifies config/aarch64/tuning_models/generic.h to adjust the br_mispredict_factor. This factor influences the cost model used to decide between conditional branches and predicated execution (csels). Increasing the mispredict factor makes branches relatively more expensive, encouraging the compiler to use csels more often. This targets generic AArch64 tuning and showed a performance improvement on an Olympus core.

For Context

This commit adjusts a parameter in the AArch64 (ARM 64-bit) version of GCC that influences how the compiler generates code for conditional statements. The compiler has to decide whether to use a branch instruction (which can be slow if the processor guesses wrong) or a conditional select instruction. This change makes the compiler slightly more likely to use conditional select instructions, which can improve performance on some processors.

Filed Under: aarch64optimizationperformance