[Adding ARM maintainers to CC] On Oct 21, 2014, at 9:44 AM, Sebastian Pop <seb...@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. Thank you, -- Maxim Kuvyrkov www.linaro.org