IA64 performance patch

Steve Ellcey sje@cup.hp.com
Tue Mar 5 15:57:00 GMT 2002


> Do they always get unified such that they only take up one
> register or stack slot?

In the test cases I looked at they were unified into a single register
and it would still get rid of unnecessary loads of that register from r1
so you could and would still get:  save r1 in R, do a call, restore r1
from R, access global memory via r1, do another call, restore r1 from R;
without creating any unneeded copies from r1 back into R between the
calls because register R is saved across the calls.

> I'm not sure that this is important enough to address on the
> branch, and for mainline I think it's the wrong approach.
> There, we should simply not expose the gp register at all as
> early as we do.
>
> The earliest should probably be the instruction splitting
> pass just before sched1.  Even better would be to use
> optimize_mode_switching to place the (single) copy from
> the gp to the save register.

I am not pushing for the branch so I have no problem with not doing it
there.  As for not exposing the gp, I was just working with the way it
was implemented.  I can look into optimize_mode_switching but it
wouldn't be anything that I would do immediately so if the fact that the
saves of r1 do get unified make the change acceptable I would still like
it checked in on the main line.

Steve Ellcey
sje@cup.hp.com



More information about the Gcc-patches mailing list