This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Account for prologue spills in reg_pressure scheduling


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]