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.