This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [ira] rewriting save/restore palcement optimization
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: "Jeff Law" <law at redhat dot com>
- Cc: "Vladimir Makarov" <vmakarov at redhat dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 30 May 2008 11:50:59 +0200
- Subject: Re: [ira] rewriting save/restore palcement optimization
- References: <483EE5E7.7060008@redhat.com> <483F4CFA.9080304@redhat.com>
On Fri, May 30, 2008 at 2:40 AM, Jeff Law <law@redhat.com> wrote:
> Vladimir Makarov wrote:
>>
>> The following patch contains mostly rewritting optimization of
>> placement of saves/restores around calls. The goal of this
>> optimization is to remove redundant saves/restores, move them away as
>> far as possible to less frequently executed points to free hard
>> registers for the reload registers. As I wrote the previous version
>> was supposed to be a temporary solution. This version permits to move
>> saves too (the previous version moved only restores). It also permits
>> to move saves/restores through loops and permits to use saved hard
>> registers for the reload registers (the previous version did not
>> permitted to do it).
>>
>> The patch was tested and bootstrapped on x86/x86_64, ppc64, an
>> itanium. I see a bit better results (in performance and code size)
>> with the patch for SPEC2000 on x86.
>
> FWIW, sparc floating point code was always the canonical way to performance
> test caller-save as its ABI had all FP registers as call clobbered. If
> you've still got access to a semi-modern sparc box it would probably be an
> insightful test.
The same is true on x86_64 where all SSE registers are call-clobbered.
Richard.