This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Account for prologue spills in reg_pressure scheduling
- From: Ramana Radhakrishnan <ramana dot gcc at googlemail dot com>
- To: Maxim Kuvyrkov <maxim dot kuvyrkov at linaro dot org>, Sebastian Pop <sebpop at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Vladimir Makarov <vmakarov at redhat dot com>, Ramana Radhakrishnan <ramana dot radhakrishnan at arm dot com>, Marcus Shawcroft <marcus dot shawcroft at arm dot com>, Richard Earnshaw <rearnsha at arm dot com>, Richard Sandiford <rdsandiford at googlemail dot com>
- Date: Mon, 20 Oct 2014 22:39:04 +0100
- Subject: Re: [PATCH] Account for prologue spills in reg_pressure scheduling
- Authentication-results: sourceware.org; auth=none
- References: <FE7CEF4D-A27B-46D0-96B3-3569C1558DF9 at linaro dot org> <20141020191105 dot GB30024 at f1 dot c dot bardezibar dot internal> <ED2138EC-B4EA-4BBA-AC29-5B5A3B628A9F at linaro dot org> <20141020204417 dot GA7213 at f1 dot c dot bardezibar dot internal> <183D9AE9-ADFE-4E20-A8FF-B323A631FCC4 at linaro dot org> <87wq7u30g6 dot fsf at googlemail dot com>
- Reply-to: ramrad01 at arm dot com
On Mon, Oct 20, 2014 at 10:17 PM, Richard Sandiford
<rdsandiford@googlemail.com> wrote:
> Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> writes:
>> [Adding ARM maintainers to CC]
>>
>> On Oct 21, 2014, at 9:44 AM, Sebastian Pop <sebpop@gmail.com> wrote:
>>
>>> Hi Maxim,
>>>
>>> Maxim Kuvyrkov wrote:
>>>> Thanks, benchmarking results are welcome! AArch64 doesn't use reg_pressure
>>>> scheduling by default. Use "-fsched-pressure
>>>> --param=sched-pressure-algorithm=2" to enable same thing as on ARM. I would
>>>> imagine C++ and Fortran floating-point code to be most affected.
>>>
>>> On aarch64 I only see perf improvements with your patch: no perf
>>> degradations on
>>> all the tests that I have run.
>>>
>>> base0: r216447, -O3
>>> base1: r216447, -O3 -fsched-pressure --param=sched-pressure-algorithm=2
>>> patch: r216447 + your patch, -O3 -fsched-pressure
>>> --param=sched-pressure-algorithm=2
>>>
>>> patch vs. base1 is only an improvement.
>>>
>>> base1 vs. base0 has a few good improvements, and some small degradations: your
>>> patch improves the perf for one of the degradations to the point it is better
>>> now with -fsched-pressure --param=sched-pressure-algorithm=2 than at -O3.
>>>
>>> Could we turn on "-fsched-pressure --param=sched-pressure-algorithm=2" by
>>> default for aarch64?
We already have sched-pressure --param=sched-pressure-algorithm=1 on
by default in the AArch64 backend from September.
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01663.html went in a few
days back.
So if this patch is on then we are looking at uplifts with
sched-pressure-algorithm=2 patch and --param
sched-pressure-algorithm=2. To a large degree turning on algorithm #2
is a benchmarking exercise and IMHO should happen along with the
sched-pressure tweaks that you are currently doing. I would suggest
moving to the same algorithm as the ARM backend would be nice and if
we can deal with any performance regressions that appear. However
without seeing behaviour on some more benchmarks like SPEC2k(6) it
would be unwise to switch this on by default . We can run this and let
you know the results, though SPECFP2k6 takes quite a while - are all
your patches to sched-pressure now done ?
>>
>> These are great results, yay!
>
> +1. Thanks for running these tests. If you have time, it'd also be
> interesting to try the same thing with --param=sched-pressure-algorithm=1
> (which should be equivalent to not having the --param, but better safe
> than sorry). Is algorithm 1 or algorithm 2 better for aarch64?
Sebastian's results indicate algorithm #2 + Maxim's patches are better
but we probably need some more benchmarking.
Promising results though - thanks for getting these out, Maxim.
Ramana
>
> Thanks,
> Richard