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
> <[EMAIL PROTECTED]> 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
>>  > <[EMAIL PROTECTED]> 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
>>  >
>>  >
>>
>>     
>
>
>
>   

Reply via email to