This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/80754] [8 Regression][LRA] Invalid smull instruction generated in lra-remat
- From: "wilco at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 24 May 2017 17:07:27 +0000
- Subject: [Bug rtl-optimization/80754] [8 Regression][LRA] Invalid smull instruction generated in lra-remat
- Auto-submitted: auto-generated
- References: <bug-80754-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80754
--- Comment #5 from Wilco <wilco at gcc dot gnu.org> ---
Author: wilco
Date: Wed May 24 17:06:55 2017
New Revision: 248424
URL: https://gcc.gnu.org/viewcvs?rev=248424&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.
gcc/
PR rtl-optimization/80754
* lra-remat.c (do_remat): Add overlap checks for dst_regno.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-remat.c