* patch to fix PR57468
@ 2013-06-06 21:19 Vladimir Makarov
0 siblings, 0 replies; 3+ messages in thread
From: Vladimir Makarov @ 2013-06-06 21:19 UTC (permalink / raw)
To: gcc-patches
The following patch fixes
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57468
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).
The patch was successfully bootstrapped and tested on x86/x86-64 (with
patch for pr57459).
Although the change in i386.c, it only concerns to LRA. So I've
decided to commit it without x86/x86-64 maintainer approval. May be I
am wrong in this situation. If somebody objects I am ready to revert
the patch and wait for an approval.
Committed as rev. 199764.
2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/57468
* config/i386/i386.c (inline_secondary_memory_needed): Ignore
spilled pseudos.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: patch to fix PR57468
2013-06-07 1:23 David Edelsohn
@ 2013-06-07 14:29 ` Vladimir Makarov
0 siblings, 0 replies; 3+ messages in thread
From: Vladimir Makarov @ 2013-06-07 14:29 UTC (permalink / raw)
To: David Edelsohn; +Cc: GCC Patches
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.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: patch to fix PR57468
@ 2013-06-07 1:23 David Edelsohn
2013-06-07 14:29 ` Vladimir Makarov
0 siblings, 1 reply; 3+ messages in thread
From: David Edelsohn @ 2013-06-07 1:23 UTC (permalink / raw)
To: Vladimir Makarov; +Cc: GCC Patches
> 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?
Thanks, David
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-06-07 14:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-06 21:19 patch to fix PR57468 Vladimir Makarov
2013-06-07 1:23 David Edelsohn
2013-06-07 14:29 ` Vladimir Makarov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).