https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116028

--- Comment #14 from Surya Kumari Jangala <jskumari at gcc dot gnu.org> ---
(In reply to Richard Earnshaw from comment #13)
> (In reply to Surya Kumari Jangala from comment #3)
> > The parameter register is
> > saved in a volatile register which is saved on stack in the entry bb.
> > Instead, if the volatile register is saved just before the call, then shrink
> > wrapping will happen.
> 
> /v on a register doesn't make it volatile.  It simply means that the
> register refers to a variable declared in the source-code.  See
> REG_USERVAR_P() in rtl.texi.

>From the input RTL to the pro_and_epilogue pass (where shrink wrap happens),
the parameter register r3 is copied to r9 which is then saved on stack. 'r9' is
a volatile register on Power.

Reply via email to