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

--- Comment #6 from Wilco <wilco at gcc dot gnu.org> ---
Author: wilco
Date: Thu May 25 15:12:49 2017
New Revision: 248463

URL: https://gcc.gnu.org/viewcvs?rev=248463&root=gcc&view=rev
Log:
When lra-remat rematerializes an instruction with a clobber, it checks
that the clobber does not kill live registers.  However it fails to check
that the clobber also doesn't overlap with the destination register of the 
final rematerialized instruction.  As a result it is possible to generate
illegal instructions with the same hard register as the destination and a
clobber.  Fix this by also checking for overlaps with the destination
register.

        Backport from mainline
        PR rtl-optimization/80754
        * lra-remat.c (do_remat): Add overlap checks for dst_regno.

Modified:
    branches/gcc-7-branch/gcc/ChangeLog
    branches/gcc-7-branch/gcc/lra-remat.c

Reply via email to