PIC_OFFSET_TABLE_SAVE_RTX in large stack frame

Jeffrey A Law law@redhat.com
Fri Jan 26 11:17:00 GMT 2001


  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



More information about the Gcc-patches mailing list