From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7504 invoked by alias); 19 Mar 2004 19:49:31 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 7497 invoked from network); 19 Mar 2004 19:49:30 -0000 Received: from unknown (HELO frothingslosh.sfbay.redhat.com) (66.187.237.200) by sources.redhat.com with SMTP; 19 Mar 2004 19:49:30 -0000 Received: from frothingslosh.sfbay.redhat.com (localhost.localdomain [127.0.0.1]) by frothingslosh.sfbay.redhat.com (8.12.10/8.12.10) with ESMTP id i2JJnRIS026651; Fri, 19 Mar 2004 11:49:27 -0800 Received: (from rth@localhost) by frothingslosh.sfbay.redhat.com (8.12.10/8.12.10/Submit) id i2JJnR5Y026649; Fri, 19 Mar 2004 11:49:27 -0800 X-Authentication-Warning: frothingslosh.sfbay.redhat.com: rth set sender to rth@redhat.com using -f Date: Fri, 19 Mar 2004 21:02:00 -0000 From: Richard Henderson To: Dave Korn Cc: gcc@gcc.gnu.org Subject: Re: How can INITIAL_FRAME_POINTER_OFFSET be made correct? Message-ID: <20040319194927.GA26527@redhat.com> Mail-Followup-To: Richard Henderson , Dave Korn , gcc@gcc.gnu.org References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-SW-Source: 2004-03/txt/msg01165.txt.bz2 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~