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: Evandro Menezes <e dot menezes at samsung dot com>
- To: 'Maxim Kuvyrkov' <maxim dot kuvyrkov at linaro dot org>, 'Sebastian Pop' <sebpop at gmail dot com>
- Cc: 'GCC Patches' <gcc-patches at gcc dot gnu dot org>, 'Vladimir Makarov' <vmakarov at redhat dot com>, 'Richard Sandiford' <rdsandiford at googlemail 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>
- Date: Mon, 20 Oct 2014 17:02:34 -0500
- 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>
> [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?
>
> These are great results, yay! Sebastian, what benchmarks did you run?
>
> We need to see improvements on spec2k / spec2k6 to enable
register-pressure
> scheduling on AArch64 by default. The current understanding is that
AArch64
> has enough registers to not benefit from pressure-aware scheduling. On
the
> other hand, one could argue that cores with more complex pipelines (e.g.,
> A57) might not benefit from pipeline-oriented scheduling either, and,
> therefore, scheduling for register pressure can provide a better win.
Cores with complex pipelines might benefit less from such scheduling, but if
x86-64, which is as complex as it gets, generally benefitted from other
scheduling algorithms at least, I'd wager that A57 could experience some
boost as well.
Cheers,
--
Evandro Menezes Austin, TX