GCC 10 Switches Arm's Scheduling-Pressure Algorithm For Better Performance
A minor optimization was merged into GCC 10 last week for benefiting those on Arm compiling their code with the GNU Compiler Collection.
Prominent Arm toolchain developer Wilco Dijkstra of Arm has changed the default scheduling-pressure algorithm used by their back-end with GCC. In changing the default algorithm the benefit was summed up as:
GCC 10 has also been seeing various other Arm improvements in recent months in making for another notable annual update to this open-source compiler due out in the beginning months of 2020.
Prominent Arm toolchain developer Wilco Dijkstra of Arm has changed the default scheduling-pressure algorithm used by their back-end with GCC. In changing the default algorithm the benefit was summed up as:
Currently the Arm backend selects the alternative sched pressure algorithm. The issue is that this doesn't take register pressure into account, and so it causes significant additional spilling on Arm where there are only 14 allocatable registers. Building SPEC2006 showed significant codesize gains with the default pressure algorithm, so switch back to that. PR77308 shows ~800 fewer instructions.
SPECINT2006 is ~0.6% faster on Cortex-A57 together with the other DImode patches. Overall SPEC codesize is 1.1% smaller.
GCC 10 has also been seeing various other Arm improvements in recent months in making for another notable annual update to this open-source compiler due out in the beginning months of 2020.
2 Comments