https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393
--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Wed Dec 13 14:05:57 2017 New Revision: 255606 URL: https://gcc.gnu.org/viewcvs?rev=255606&root=gcc&view=rev Log: 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. Added: trunk/gcc/testsuite/gcc.dg/pr83393.c Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c trunk/gcc/testsuite/ChangeLog