[Bug rtl-optimization/21182] [5/6/7 Regression] gcc can use registers but uses stack instead
law at redhat dot com
gcc-bugzilla@gcc.gnu.org
Tue Feb 7 03:57:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21182
--- Comment #20 from Jeffrey A. Law <law at redhat dot com> ---
So an update for gcc-7. Things continue to improve ever-so-slightly.
-O2 -DNAIL_REGS 87 references to %esp
-O2 -UNAIL_REGS 25 references to %esp
But that's still a long way from the best we've had in a release for
-UNAIL_REGS which is 13 (4.6.3 and 3.4.3) and 3 for -DNAIL_REGS (3.4.3). It's
marginally interesting that NAIL_REGS produces significantly worse code these
days.
I did a bit of grubbing trough the IRA dump. We do fairly well. Essentially
we have one big basic block with about 1200 allocnos. We get hard regs for all
but ~10. A few get hard registers during coloring, but are spilled during
improve_allocation to improve overall cost. None of the registers that get
spilled are able to be reassigned to a new hard register.
Anyway, just some thoughts. We're still not at a point where we really know if
IRA is being presented with something that isn't actually colorable or if IRA
is just doing a poor job.
More information about the Gcc-bugs
mailing list