On 02/06/2014 06:48 AM, Richard Sandiford wrote:
> Richard Henderson <r...@redhat.com> writes:
>> On 02/06/2014 01:55 AM, Richard Sandiford wrote:
>>> OK, I agree that's not 4.9 material.  What about the other change
>>> of replacing:
>>>
>>>    REF_CFA_DEF_CFA (plus (stack_pointer_rtx) (const_int 160/96))
>>>
>>> with:
>>>
>>>    REF_CFA_ADJUST_CFA (set (stack_pointer_rtx)
>>>                            (plus (current_cfa_base) (const_int offset)))
>>>
>>> ?  That works on its own, but having both a REG_CFA_ADJUST_CFA that assigns
>>> to stack_pointer_rtx and a REG_CFA_RESTORE for stack_pointer_rtx feels like
>>> a double assignment.
>>
>> It does seem like it.  I suppose it would be easy to suppress the RESTORE of
>> the stack pointer, without changing the save at all.
> 
> But if having a restore in the presence of a save doesn't matter, why do
> we have restores for the other registers?  If the idea is that we never
> care what the CFI state is after the LM(G) then why not omit all of them?
> 
> Or do you mean that REG_CFA_ADJUST_CFA would act as a REG_CFA_RESTORE too,
> if there had been a previous save?

Hum.  Your response does make it clear that I may need more coffee.
What I wrote above doesn't really make sense.


r~


Reply via email to