re PR rtl-optimization/79388 (wrong code with -O -fno-tree-coalesce-vars)

PR rtl-optimization/79388
	PR rtl-optimization/79450
	* combine.c (distribute_notes): When removing TEM_INSN for which
	corresponding dest has last value recorded, invalidate that last
	value.

	* gcc.c-torture/execute/pr79388.c: New test.
	* gcc.c-torture/execute/pr79450.c: New test.

From-SVN: r245390
This commit is contained in:
Jakub Jelinek 2017-02-13 16:39:59 +01:00
parent 2d3bc14c2e
commit 9b7716c9a7
5 changed files with 69 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2017-02-13 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/79388
PR rtl-optimization/79450
* combine.c (distribute_notes): When removing TEM_INSN for which
corresponding dest has last value recorded, invalidate that last
value.
2016-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead

View File

@ -14288,6 +14288,11 @@ distribute_notes (rtx notes, rtx_insn *from_insn, rtx_insn *i3, rtx_insn *i2,
NULL_RTX, NULL_RTX, NULL_RTX);
distribute_links (LOG_LINKS (tem_insn));
unsigned int regno = REGNO (XEXP (note, 0));
reg_stat_type *rsp = &reg_stat[regno];
if (rsp->last_set == tem_insn)
record_value_for_reg (XEXP (note, 0), NULL, NULL_RTX);
SET_INSN_DELETED (tem_insn);
if (tem_insn == i2)
i2 = NULL;

View File

@ -1,7 +1,14 @@
2017-02-13 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/79388
PR rtl-optimization/79450
* gcc.c-torture/execute/pr79388.c: New test.
* gcc.c-torture/execute/pr79450.c: New test.
2017-02-12 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/65542
* gfortran.dg/spread_init_expr_2.f90: New test case.
* gfortran.dg/spread_init_expr_2.f90: New test case.
2017-02-11 Jakub Jelinek <jakub@redhat.com>
@ -812,7 +819,8 @@
* gcc.dg/vect/vect-24.c: Remove xfail on ARM targets.
2017-01-25 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3-p8.c: Add missing tests for the
* gcc.target/powerpc/builtins-3-p8.c: Add missing tests for the
vec_packs built-ins
2017-01-25 Christophe Lyon <christophe.lyon@linaro.org>
@ -1012,7 +1020,7 @@
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
* gfortran.dg/integer_exponentiation_7.f90: New test.
* gfortran.dg/integer_exponentiation_7.f90: New test.
2017-01-23 Bernd Schmidt <bschmidt@redhat.com>

View File

@ -0,0 +1,23 @@
/* PR rtl-optimization/79388 */
/* { dg-additional-options "-fno-tree-coalesce-vars" } */
unsigned int a, c;
__attribute__ ((noinline, noclone)) unsigned int
foo (unsigned int p)
{
p |= 1;
p &= 0xfffe;
p %= 0xffff;
c = p;
return a + p;
}
int
main (void)
{
int x = foo (6);
if (x != 6)
__builtin_abort();
return 0;
}

View File

@ -0,0 +1,22 @@
/* PR rtl-optimization/79450 */
unsigned int
foo (unsigned char x, unsigned long long y)
{
do
{
x &= !y;
x %= 24;
}
while (x < y);
return x + y;
}
int
main (void)
{
unsigned int x = foo (1, 0);
if (x != 1)
__builtin_abort ();
return 0;
}