This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Excess registers pushed - regs_ever_live not right way?
Thanks
I will check this.
DF Dump in RTL file does not list Artificial defs - which is what I
think I need. However, I do note that all potential parameter registers
(including those unused) - are listed as invalidated by call. - which
means 1 (or more) defs. So like you suggest I just need to find count.
Andy
Seongbae Park (박성배, 朴成培) wrote:
> You can use DF_REG_DEF_COUNT() - if this is indeed a parameter register,
> there should be only one def (artificial def) or no def at all.
> Or if you want to see all defs for the reg,
> follow DF_REG_DEF_CHAIN().
>
> Seongbae
>
> On Wed, Feb 27, 2008 at 6:03 PM, Andrew Hutchinson
> <andrewhutchinson@cox.net> wrote:
>
>> Register contains parameter that is passed to function. This register
>> is not part of call used set.
>>
>> If this type of register were modified by function, then it would be
>> saved by function.
>>
>> If this register is not modified by function, it should not be saved.
>> This is true even if function is not a leaf function (as same register
>> would be preserved by deeper calls)
>>
>>
>> Andy
>>
>>
>>
>>
>>
>> Seongbae Park (박성배, 朴成培) wrote:
>> > 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
>> >
>> >
>>
>>
>
>
>
>