combine: Fix PR83393
authorSegher Boessenkool <segher@kernel.crashing.org>
Wed, 13 Dec 2017 14:05:57 +0000 (15:05 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Wed, 13 Dec 2017 14:05:57 +0000 (15:05 +0100)
commit2046f23f52d5ed4299f12e5f98a88491e4936c44
treefdd3d7a0babdfbf3b3c64e2de65288c9cc43e89b
parent2b031ef48e365e256495a3e6d226a59f2290444f
combine: Fix PR83393

In move_deaths we move a REG_DEAD note if the instruction combination
has extended the lifetime of a register so that the existing note is
no longer valid.  We find that note using reg_stat, but what that finds
can refer to a later insn.  If so, we cannot use the cached value.  This
patch implements that.

PR rtl-optimization/83393
* combine.c (move_deaths): If reg_stat points to a too new insn in
last_death, do not use it: find the proper insn instead.

gcc/testsuite/
PR rtl-optimization/83393
* gcc.dg/pr83393.c: New testcase.

From-SVN: r255606
gcc/ChangeLog
gcc/combine.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr83393.c [new file with mode: 0644]