On Wed, Nov 21, 2018 at 1:45 PM Vladimir Makarov <vmaka...@redhat.com> wrote:
>
>
>
> On 11/21/2018 02:33 PM, Uros Bizjak wrote:
> > Hello!
> >
> > Before the recent patch to post-reload mode switching, vzeroupper
> > insertion depended on the existence of the return copy instructions
> > pair in functions that return a value. The first instruction in the
> > pair represents a move to a function return hard register, and the
> > second was a USE of the function return hard register. Sometimes a nop
> > move was generated (e.g. %eax->%eax) for the first instruction of the
> > return copy instructions pair and the patch [1] teached LRA  to remove
> > these useless instructions on the fly.
> >
> > The removal caused optimize mode switching to trigger the assert,
> > since the first instruction of a return pair was not found. The
> > relevant part of the patch was later reverted. With the recent
> > optimize mode switching patch, this is no longer necessary for
> > vzeroupper insertion pass, so attached patch reverts the revert.
> >
> > 2018-11-21  Uros Bizjak  <ubiz...@gmail.com>
> >
> >      Revert the revert:
> >      2013-10-26  Vladimir Makarov  <vmaka...@redhat.com>
> >
> >      Revert:
> >      2013-10-25  Vladimir Makarov  <vmaka...@redhat.com>
> >
> >      * lra-spills.c (lra_final_code_change): Remove useless move insns.
> >
> > Patch was bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.
> >
> > OK for mainline?
> Sure. Thank you, Uros.
> > [1] https://gcc.gnu.org/ml/gcc-patches/2013-10/msg02208.html
> >
> > Uros.
>

This caused:

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

-- 
H.J.

Reply via email to