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.
On Saturday 04 January 2003 11:52 am, Denis Chertykov wrote:
> Andy Walker <ja_walker@earthlink.net> writes:
> > I am thinking about changing the frame layout for i386, but only when
> > Synthetic registers are used.
> >
<snip>
> >
> > 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.
> **
In principle, you are correct. The differences are small. I believe that in
many instances, instructions accessing stack slots as spilled registers are
six bytes long, not three bytes long as for Synthetic registers. I believe
that the compiler does not differentiate between spilled register stack slot
memory and any other kind of memory, and so generates unnecessary register
content motion between registers and stack slots, under the mistaken idea
that this is more efficient.
I could be completely mistaken. I will not be sure until I have tried it.
Andy
>
> 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.