This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][ARM] Switch to default sched pressure algorithm
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, nd <nd at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Kyrylo Tkachov <Kyrylo dot Tkachov at arm dot com>
- Date: Tue, 30 Jul 2019 11:08:37 +0200
- Subject: Re: [PATCH][ARM] Switch to default sched pressure algorithm
- References: <VI1PR0801MB2127648B6F8EA34101D444F683DD0@VI1PR0801MB2127.eurprd08.prod.outlook.com>
On Mon, 29 Jul 2019 at 18:49, Wilco Dijkstra <Wilco.Dijkstra@arm.com> wrote:
>
> 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. SPEC2006 shows significant codesize reduction
> 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.
>
Hi Wilco,
Do you know which benchmarks were used when this was checked-in?
It isn't clear from https://gcc.gnu.org/ml/gcc-patches/2012-07/msg00706.html
Thanks,
Christophe
> Bootstrap & regress OK on arm-none-linux-gnueabihf --with-cpu=cortex-a57
>
> ChangeLog:
> 2019-07-29 Wilco Dijkstra <wdijkstr@arm.com>
>
> * config/arm/arm.c (arm_option_override): Don't override sched
> pressure algorithm.
>
> --
>
> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
> index 81286cadf32f908e045d704128c5e06842e0cc92..628cf02f23fb29392a63d87f561c3ee2fb73a515 100644
> --- a/gcc/config/arm/arm.c
> +++ b/gcc/config/arm/arm.c
> @@ -3575,11 +3575,6 @@ arm_option_override (void)
> if (use_neon_for_64bits == 1)
> prefer_neon_for_64bits = true;
>
> - /* Use the alternative scheduling-pressure algorithm by default. */
> - maybe_set_param_value (PARAM_SCHED_PRESSURE_ALGORITHM, SCHED_PRESSURE_MODEL,
> - global_options.x_param_values,
> - global_options_set.x_param_values);
> -
> /* Look through ready list and all of queue for instructions
> relevant for L2 auto-prefetcher. */
> int param_sched_autopref_queue_depth;
>