re PR tree-optimization/71575 ([graphite] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2500)
2016-11-11 Richard Biener <rguenther@suse.de> PR tree-optimization/71575 * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove bogus assert. * gcc.dg/graphite/pr71575-1.c: New testcase. * gcc.dg/graphite/pr71575-2.c: Likewise. From-SVN: r242069
This commit is contained in:
parent
d07f8c591a
commit
4b7e0c7668
5 changed files with 50 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-11-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/71575
|
||||
* graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
|
||||
bogus assert.
|
||||
|
||||
2016-11-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/78295
|
||||
|
|
|
@ -2505,9 +2505,6 @@ copy_cond_phi_nodes (basic_block bb, basic_block new_bb, vec<tree> iv_map)
|
|||
tree res = gimple_phi_result (phi);
|
||||
if (virtual_operand_p (res))
|
||||
continue;
|
||||
if (is_gimple_reg (res) && scev_analyzable_p (res, region->region))
|
||||
/* Cond phi nodes should not be scev_analyzable_p. */
|
||||
gcc_unreachable ();
|
||||
|
||||
gphi *new_phi = create_phi_node (SSA_NAME_VAR (res), new_bb);
|
||||
tree new_res = create_new_def_for (res, new_phi,
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2016-11-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/71575
|
||||
* gcc.dg/graphite/pr71575-1.c: New testcase.
|
||||
* gcc.dg/graphite/pr71575-2.c: Likewise.
|
||||
|
||||
2016-11-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/78295
|
||||
|
|
22
gcc/testsuite/gcc.dg/graphite/pr71575-1.c
Normal file
22
gcc/testsuite/gcc.dg/graphite/pr71575-1.c
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -floop-nest-optimize" } */
|
||||
|
||||
void w(int x, double *y)
|
||||
{
|
||||
int i, j;
|
||||
double a;
|
||||
double c[32];
|
||||
|
||||
for (i = 0; i < x; i++) {
|
||||
for (j = 0; j < x - i; j++) {
|
||||
c[j] = y[i];
|
||||
}
|
||||
y[i] = a;
|
||||
a += c[0] + y[i];
|
||||
}
|
||||
}
|
||||
|
||||
void v(int x, double *y)
|
||||
{
|
||||
w(x, y);
|
||||
}
|
16
gcc/testsuite/gcc.dg/graphite/pr71575-2.c
Normal file
16
gcc/testsuite/gcc.dg/graphite/pr71575-2.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Ofast -floop-nest-optimize" } */
|
||||
|
||||
int *a;
|
||||
int b, c, d, e, g;
|
||||
char f;
|
||||
|
||||
void fn1() {
|
||||
for (; c;) {
|
||||
b = 0;
|
||||
for (; b <= 2; b++) {
|
||||
unsigned **h = (unsigned **) &a[b];
|
||||
*h = (unsigned *)(__UINTPTR_TYPE__)((g && (e = d)) != f++);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue