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:
parent
c10abf530e
commit
a263e61a36
4 changed files with 48 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
32
gcc/testsuite/gcc.dg/torture/pr91200.c
Normal file
32
gcc/testsuite/gcc.dg/torture/pr91200.c
Normal 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;
|
||||
}
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue