This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Synthetic register related: consequences of changing Frame layout.
- From: Denis Chertykov <denisc at overta dot ru>
- To: Andy Walker <ja_walker at earthlink dot net>
- Cc: gcc at gcc dot gnu dot org
- Date: 04 Jan 2003 20:52:01 +0300
- Subject: Re: Synthetic register related: consequences of changing Frame layout.
- References: <E18UiLf-0006bo-00@albatross.prod.itd.earthlink.net>
Andy Walker <ja_walker@earthlink.net> writes:
> I am thinking about changing the frame layout for i386, but only when
> Synthetic registers are used.
>
> In particular, I want to align the hard-frame-pointer on a 32 byte boundary.
>
> My instinct is that I will have to copy the old pc and old frame pointer to
> new locations to correspond to the modified hard-frame-pointer. I will have
> to hunt down the place that points to the arguments above the
> hard-frame-pointer and adjust them so that the arguments are correctly found.
>
> The saved registers will go below the hard-frame-pointer and the Synthetic
> registers, and I will have to modify the register save/restore processes to
> match the new layout.
>
> What else am I likely to break in the process?
So, You want to use part of stack frame for Synthetic Registers (SR).
**
I can't found differences between the spilled register (pseudo register
without hard register) and the Synthetic Register.
**
The current allocator trying to find a hard register for any pseudo register
and if this impossible then allocator spill the pseudo to the stack
frame and trying to use the stack slot as register.
The new allocator differs from the current only in allocation methods
not in principles. IE both allocators trying to map infinite number of
pseudo registers to limited set of hard regs, both tring to spill
registers to stack frame and both trying to rematerialize values.
Denis.