This is the mail archive of the gcc@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]
Other format: [Raw text]

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


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