This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][AArch64] Set default sched pressure algorithm
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Andrew Pinski <apinski at cavium dot com>
- Cc: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>, "Ellcey, Steve" <Steve dot Ellcey at cavium dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, nd <nd at arm dot com>, "jim dot wilson at linaro dot org" <jim dot wilson at linaro dot org>, "Andrew dot pinski at cavium dot com" <Andrew dot pinski at cavium dot com>
- Date: Fri, 3 Nov 2017 11:11:13 +0100
- Subject: Re: [PATCH][AArch64] Set default sched pressure algorithm
- Authentication-results: sourceware.org; auth=none
- References: <DB6PR0801MB2053393718EE4BAE98915F00835C0@DB6PR0801MB2053.eurprd08.prod.outlook.com> <CA+=Sn1kJba8Mjjctq0hau6Zzb=eN_A4Mr2vhNMRet7zGTqQDjQ@mail.gmail.com>
On Fri, Nov 3, 2017 at 6:38 AM, Andrew Pinski <apinski@cavium.com> wrote:
> On Fri, Nov 3, 2017 at 12:11 AM, Wilco Dijkstra <Wilco.Dijkstra@arm.com> wrote:
>> The Arm backend sets the default sched-pressure algorithm to
>> SCHED_PRESSURE_MODEL. Benchmarking on AArch64 shows this
>> speeds up floating point performance on SPEC - eg. CactusBSSN improves
>> by ~16%. The gains are mostly due to less spilling, so enable this on AArch64
>> by default.
>>
>> OK for commit?
>
> I am ok with this from my point of view. The rs6000, arm and s390
> back-ends all enable the same way. I suspect all RISC targets should
> enable this way too.
I think all OOO execution capable CPUs should. Ideally this wouldn't be
a choice between two models but the scheduler would take into account
register pressure anyways. Or we should always schedule with sched-pressure
during first scheduling.
Richard.
> Thanks,
> Andrew
>
>>
>> 2017-11-02 Wilco Dijkstra <wdijkstr@arm.com>
>>
>> * config/aarch64/aarch64.c (aarch64_override_options_internal):
>> Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
>>
>> --
>> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
>> index 34456e96497ac7b6d2f9931187ff05619e1934a4..750b0bc29c0963742d5d7bb4ae4619d93bec3e4a 100644
>> --- a/gcc/config/aarch64/aarch64.c
>> +++ b/gcc/config/aarch64/aarch64.c
>> @@ -9276,6 +9276,11 @@ aarch64_override_options_internal (struct gcc_options *opts)
>> opts->x_param_values,
>> global_options_set.x_param_values);
>>
>> + /* Use the alternative scheduling-pressure algorithm by default. */
>> + maybe_set_param_value (PARAM_SCHED_PRESSURE_ALGORITHM, SCHED_PRESSURE_MODEL,
>> + opts->x_param_values,
>> + global_options_set.x_param_values);
>> +
>> /* Enable sw prefetching at specified optimization level for
>> CPUS that have prefetch. Lower optimization level threshold by 1
>> when profiling is enabled. */
> <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br />
> <table style="border-top: 1px solid #D3D4DE;">
> <tr>
> <td style="width: 55px; padding-top: 13px;"><a
> href="http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
> target="_blank"><img
> src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"
> alt="" width="46" height="29" style="width: 46px; height: 29px;"
> /></a></td>
> <td style="width: 470px; padding-top: 12px; color: #41424e;
> font-size: 13px; font-family: Arial, Helvetica, sans-serif;
> line-height: 18px;">Virus-free. <a
> href="http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"
> target="_blank" style="color: #4453ea;">www.avg.com</a>
> </td>
> </tr>
> </table><a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1"
> height="1"></a></div>