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.