This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ppc glibc 2.3 failure
On Mon, Oct 07, 2002 at 05:43:36PM -0700, Richard Henderson wrote:
> rs6000_stack_info needs to produce different results when called
> during the reload loop (since we might be spilling more and more
> registers), but after reload is complete, the values computed
> must *never* change.
>
> See ia64_compute_frame_size and how it handles "initialized".
I tried to do it the ia64 way, but ran into a problem where we set the
LR in the prologue, and then emit the following call in the body:
(call_insn 35 33 37 0 0x30267480 (parallel [
(set (reg:SI 3 r3)
(call (mem:SI (symbol_ref:SI ("getpid")) [0 S4 A8])
(const_int 0 [0x0])))
(use (const_int 0 [0x0]))
(clobber (reg:SI 65 lr))
^^^^^^^^^^^^^^^^ boo hiss!
As you've suggested, I'm looking at why rs6000_stack_info() did not
pick the clobber in the first place.
Meanwhile... I already had this patch tested, changing
rs6000_ra_ever_killed to use prologue_epilogue_contains. I updated
comments and typos throughout as well.
Tested on ppc linux. Bootstrapped and tested everything except Java,
since it's broken on ppc linux right now.
Is this ok (while I investigate why caching the stack info is
broken)? I just have this pet peeve cuz I can't build glibc :).
Aldy