[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