https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116028
--- Comment #13 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- (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.