r255554 - in /trunk/gcc: ChangeLog combine.c te...

aoliva@gcc.gnu.org aoliva@gcc.gnu.org
Mon Dec 11 22:36:00 GMT 2017


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



More information about the Gcc-cvs mailing list