This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Help with implementing Wine optimization experiment
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: Trevor Saunders <tbsaunde at tbsaunde dot org>, Daniel Santos <daniel dot santos at pobox dot com>, gcc <gcc at gcc dot gnu dot org>
- Date: Mon, 15 Aug 2016 12:56:46 +0200
- Subject: Re: Help with implementing Wine optimization experiment
- Authentication-results: sourceware.org; auth=none
- References: <af89a465-e41f-e560-b27e-8c1e65cceb6a@pobox.com> <20160814075547.btzb6obkhjc7pzsx@ball> <a852041c-3865-5366-713f-bc7d9c921435@redhat.com>
On Mon, Aug 15, 2016 at 2:16 AM, Jeff Law <law@redhat.com> wrote:
> On 08/14/2016 01:57 AM, Trevor Saunders wrote:
>>
>> On Sun, Aug 14, 2016 at 01:23:16AM -0500, Daniel Santos wrote:
>>>
>>> I'm experimenting with ways to optimize wine (x86 target only) and I
>>> believe
>>> I can shrink wine's total text size by around 7% by outlining the lengthy
>>> pro- and epilogues required for ms_abi functions making sysv_abi calls.
>>> Theoretically, fewer instruction cache misses will offset the extra 4
>>> instructions per function and result in a net performance gain. However,
>>> I'm
>>> new to the gcc project and a novice x86 assembly programmer as well (have
>>> been wanting to work on gcc for a while now!) In short, I want to:
>>>
>>> 1. Replace the prologue that pushes di, sp and xmm6-15 with a single call
>>> to
>>> a global "ms_abi_push_regs" routine
>>> 2. Replace the epilogue that pops these regs with a jmp to a global
>>> "ms_abi_pop_regs" routine
>>> 3. Add the two routines somewhere so that they are linked into the
>>> output.
>>
>>
>> I think you want to put those into libgcc then.
>
> Right. That's what I've done with out-of-line prologues/epilogues in the
> past.
In the static part, of course. Not sure if we always have/link that
on x86_64/i?86.
Richard.
> Jeff