On 13-06-06 9:22 PM, David Edelsohn wrote:
The patch actually restore the LRA behaviour for x86/x86-64 before rev. 199298.
The revision was added for PPC SDmode value correct generation. So it is really
needed for PPC64 and badly hurts x86/x86-64 performance (by doing secondary
memory reloads when one pseudo is spilled).
Should the solution for PPC64 be further limited, even on
PPC64? Is this going to hurt more normal spilling code on PPC64 that
does not have the strange restrictions of SDmode?
No, it does not hurt ppc performance. In ppc case, it works the same
way as reload does (and only for SDmode values). I also found LRA
generates a better code for SDmode than reload. I did not figure out
why reload pass uses secondary memory when one pseudo is spilled for ppc
and does not use this for x86/x86-64 although both targets report
necessity of secondary memory in case when one pseudo is spilled. It
requires a lot of time but I should probably still do this.
I hope that Mike checks performance of LRA as I have no hardware to
do this. If he finds any performance degradation, I look at it.