aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/graphite-isl-ast-to-gimple.c3
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr71575-1.c22
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr71575-2.c16
5 files changed, 50 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ca356d..5c0f897 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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
* tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
about uninitialized destination arg of BIT_INSERT_EXPR.
diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c
index 0eb564a..209eada 100644
--- a/gcc/graphite-isl-ast-to-gimple.c
+++ b/gcc/graphite-isl-ast-to-gimple.c
@@ -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,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index acec6d9..87f09bd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,11 @@
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
* gcc.dg/uninit-pr78295.c: New testcase.
diff --git a/gcc/testsuite/gcc.dg/graphite/pr71575-1.c b/gcc/testsuite/gcc.dg/graphite/pr71575-1.c
new file mode 100644
index 0000000..4a8623e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr71575-1.c
@@ -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);
+}
diff --git a/gcc/testsuite/gcc.dg/graphite/pr71575-2.c b/gcc/testsuite/gcc.dg/graphite/pr71575-2.c
new file mode 100644
index 0000000..24bc957
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr71575-2.c
@@ -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++);
+ }
+ }
+}