https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81019
--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> --- Author: aoliva Date: Mon Dec 11 22:36:07 2017 New Revision: 255554 URL: https://gcc.gnu.org/viewcvs?rev=255554&root=gcc&view=rev Log: [PR80693] drop value of parallel SETs dropped by combine When combine drops a REG_UNUSED SET in a parallel, we have to clear cached values, so that, even if the REGs remain used (e.g. because they were referenced in the used SET_SRC), we will not use properties of the dropped modified value as if they applied to the preserved original one. We fail to adjust REG_N_SETS. for gcc/ChangeLog PR rtl-optimization/80693 PR rtl-optimization/81019 PR rtl-optimization/81020 * combine.c (distribute_notes): Reset any REG_UNUSED REGs that are not mentioned in i3. Place the REG_UNUSED note on i2, possibly modified to REG_DEAD, if it did not originate in i3. for gcc/testsuite/ChangeLog PR rtl-optimization/80693 PR rtl-optimization/81019 PR rtl-optimization/81020 * gcc.dg/pr80693.c: New. * gcc.dg/pr81019.c: New. Added: trunk/gcc/testsuite/gcc.dg/pr80693.c trunk/gcc/testsuite/gcc.dg/pr81019.c Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c trunk/gcc/testsuite/ChangeLog