This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: PIC_OFFSET_TABLE_SAVE_RTX in large stack frame


  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]