https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80239
Thomas Preud'homme <thopre01 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #6 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- (In reply to Thomas Preud'homme from comment #5) > (In reply to Thomas Preud'homme from comment #1) > > > > I believe the problem is that the equivalence stays with NO_REGS as register > > class instead of being given that of a register (since it's going to be > > reloaded into a register). My patch follows that path and as said above > > works just after r235184 but the performance remains worse on recent trunk. > > > > When looking at code generated by recent trunk, the issue mentionned in the > > original post is not there which suggest that something else is at play. > > I bisect this issue down to r239561 and reverting that commit on top of > current trunk is enough to bring the performance back up. I'll still push > the patch I mentioned above forward but given the circumstances I will wait > for GCC 8 stage 1 for doing so. > > I'll post a testcase of the issue as soon as I have understood what is the > source of the slowdown with r239561 in current trunk. Alright, that was due to a change in alignment. Adding a nop before anything in main's prologue brings back performance. Thus closing the bug.