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