Excess registers pushed - regs_ever_live not right way?

Seongbae Park (박성배, 朴成培) seongbae.park@gmail.com
Thu Feb 28 01:53:00 GMT 2008


On Wed, Feb 27, 2008 at 5:16 PM, Andrew Hutchinson
<andrewhutchinson@cox.net> wrote:
> Register saves by prolog (pushes) are typically made with reference to
>  "df_regs_ever_live_p()" or  "regs_ever_live. "||
>
>  If my understanding is correct,  these calls reflect register USEs and
>  not register DEFs. So if register is used in a function, but not
>  otherwise changed, it will get pushed unnecessarily on stack by prolog.

This implies that the register is either a global register
or a parameter register, in either case it won't be saved/restored
as callee save.
What kind of a register is it and how com there's only use of it in a function
but it's not a global ?

Seongbae



More information about the Gcc mailing list