re PR tree-optimization/91200 (ICE on valid code at -O1: verify_ssa failed)

2019-07-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91200
	* tree-ssa-phiopt.c (cond_store_replacement): Check we have
	no PHI nodes in middle-bb.

	* gcc.dg/torture/pr91200.c: New testcase.

From-SVN: r273602
This commit is contained in:
Richard Biener 2019-07-19 12:24:53 +00:00 committed by Richard Biener
parent c10abf530e
commit a263e61a36
4 changed files with 48 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2019-07-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.
2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
* doc/invoke.texi: Rename the AArch64 +bitperm extension flag

View file

@ -1,3 +1,8 @@
2019-07-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/91200
* gcc.dg/torture/pr91200.c: New testcase.
2019-07-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/91190

View file

@ -0,0 +1,32 @@
/* { dg-do compile } */
int printf (const char *, ...);
char a;
int b, c, **d;
int main ()
{
int f = -128, *g, *h[2] = {0, 0}, i;
printf("0");
if (a)
{
while (f > a) {
int *j = &i;
*j |= 0;
}
h[i] = &c;
}
if (h[1])
{
int **k = &g;
*k = &f;
while (i)
{
int **l[] = {&g};
}
int **m = &g;
*d = *m = &b;
}
return 0;
}

View file

@ -2216,6 +2216,11 @@ cond_store_replacement (basic_block middle_bb, basic_block join_bb,
|| gimple_has_volatile_ops (assign))
return false;
/* And no PHI nodes so all uses in the single stmt are also
available where we insert to. */
if (!gimple_seq_empty_p (phi_nodes (middle_bb)))
return false;
locus = gimple_location (assign);
lhs = gimple_assign_lhs (assign);
rhs = gimple_assign_rhs1 (assign);