[Bug rtl-optimization/21182] [5/6/7 Regression] gcc can use registers but uses stack instead
vmakarov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 10 16:19:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21182
--- Comment #21 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Jeffrey A. Law from comment #20)
>
> 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.
IRA was introduced in GCC4.4. That time, the numbers were ok. So I don't
think something is missed in IRA. It is not a deleted regmove pass (and new
threaded coloring in RA which substituted it) too as it was done for GCC4.9.
Either it is a different input code to IRA (more aggressive optimizations
before RA) or some big changes in IRA after initial introducing it. Although I
always checked new RA optimizations on SPEC2000/SPEC2006, this particular code
could be worsened such new changes.
The biggest change (several K lines patch) in IRA in this time span was a new
coloring scheme for irregular register files (an approach analogous to
https://pdfs.semanticscholar.org/1072/2533ba1d88f53ce6635865d5230b9802246f.pdf)
. As I remember it gave 1% improvement for SPEC2000. May be it is a culprit.
I any case I don't think i386 is important these days to spent much time on the
PR.
More information about the Gcc-bugs
mailing list