This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How can INITIAL_FRAME_POINTER_OFFSET be made correct?
- From: Richard Henderson <rth at redhat dot com>
- To: Dave Korn <dk at artimi dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 19 Mar 2004 11:49:27 -0800
- Subject: Re: How can INITIAL_FRAME_POINTER_OFFSET be made correct?
- References: <NUTMEGv5y4FypKsEgJX000001b6@NUTMEG.CAM.ARTIMI.COM>
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~