This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]