This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATH] PR 5126, fix for m68k PIC optimization bug
Richard Henderson <rth@redhat.com> writes:
|> On Thu, Dec 27, 2001 at 10:06:16PM +0100, Andreas Schwab wrote:
|> > Not making the pic register a fixed register does not work, IIRC this is
|> > because references to the pic register can be created during reload when a
|> > CONST_DOUBLE needs to be moved to the constant pool, and this is the first
|> > time a pic reference is needed.
|>
|> Correct, but I thought regs_ever_live was kept up to date until
|> reload, which would have the advantage that if all references
|> to the pic register get optimized away early, you don't load the
|> pic register, unlike with current_function_uses_pic_offset_table.
|>
|> You would have to handle updating regs_ever_live during reload
|> special, but I'd think it possible.
|>
|> OTOH, x86 continues to use it's own private variable, like
|> current_function_uses_pic_offset_table, so I don't know if
|> there's just something that I'm forgetting.
x86 PIC support is different, the pic register is needed even for calling
a function (and it is hard-coded in the PLT). On m68k you only need a
register for indexing the GOT, and that can even be an arbitrary address
register (actually you don't really need a register, but it's more
efficient this way). Note, I'm only talking about SVR4-style PIC, I don't
know about other PIC implementations.
Andreas.
--
Andreas Schwab "And now for something
Andreas.Schwab@suse.de completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5