GCC 10 Switches Arm's Scheduling-Pressure Algorithm For Better Performance

Written by Michael Larabel in Arm on 21 October 2019 at 07:56 AM EDT. 2 Comments
ARM
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:
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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week