How can INITIAL_FRAME_POINTER_OFFSET be made correct?

Richard Henderson rth@redhat.com
Fri Mar 19 21:02:00 GMT 2004


On Fri, Mar 19, 2004 at 03:30:03PM -0000, Dave Korn wrote:
>   INITIAL_FRAME_POINTER_OFFSET is called before the md emit prologue
> function has has a chance to run.  So it has to duplicate the exact
> calculations that the prologue function does when it's deciding on the stack
> frame layout for the current function.

Yes.  This is true for everyone.  Preferred technique is to use a
common function to be used here and in the prologue/epilogue code.

>   Is it valid that regs_ever_live[] changes between IFPO and emit_prologue?

No.  Whenever reload adds a new spill register, it's supposed to go
back through the allocation loop, which will recompute that offset.

I don't suppose your link register is marked CALL_USED?  That's
probably a mistake...


r~



More information about the Gcc mailing list