This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PIC_OFFSET_TABLE_SAVE_RTX in large stack frame
- To: Alan Modra <alan at linuxcare dot com dot au>
- Subject: Re: PIC_OFFSET_TABLE_SAVE_RTX in large stack frame
- From: Jeffrey A Law <law at redhat dot com>
- Date: Fri, 26 Jan 2001 12:13:30 -0700
- cc: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>, gcc-patches at gcc dot gnu dot org
- Reply-To: law at redhat dot com
In message <Pine.LNX.4.21.0101252230060.14496-100000@front.linuxcare.com.au>y
ou write:
> Here's a fix for a complication I found when compiling glibc. I suspect
> Dave's patch to move this code into pa.md requires something similar.
>
> * config/pa/pa.c (hppa_expand_prologue): Handle saves of pic
> register into the stack when offset from base is greater than 8k.
I wonder if we could avoid doing this save in the prologue at all -- doing
so just complicates things because we don't get the benefit of the
register allocator/reloader to fix this kind of thing up for us.
I also worry that now showing the initial assignment to
PIC_OFFSET_TABLE_REGNUM is going to run afoul of certain assumptions
elsewhere.
For example, when building the conflict matrix in the register allocator we
use the fact that we're supposed to see all assignments to pseudos to
simplify building of the matrix. If we're not seeing the assignment to
this pseudo, then we may not record that this pseudo conflicts with certain
others. That in turn could lead to incorrect code.
I think we need to look for a clean way to move this code out of the prologue
and into the normal stream so that the rest of the compiler is aware of
the set to PIC_OFFSET_TABLE_RTX.
jeff