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:
Richard Biener 2016-11-11 12:54:25 +00:00 committed by Richard Biener
parent d07f8c591a
commit 4b7e0c7668
5 changed files with 50 additions and 3 deletions

View file

@ -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

View file

@ -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,

View file

@ -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

View 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);
}

View 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++);
}
}
}