aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-09-26 11:05:42 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-09-26 11:05:42 +0000
commit621e53705ae51337f78713a868ff3dd41f950422 (patch)
treea961530067a06df9d1f7d288effaa6de55d0123e
parent17ec4b792b8a5c8b454928efe409f62c4e356ffe (diff)
downloadgcc-621e53705ae51337f78713a868ff3dd41f950422.zip
gcc-621e53705ae51337f78713a868ff3dd41f950422.tar.gz
gcc-621e53705ae51337f78713a868ff3dd41f950422.tar.bz2
re PR tree-optimization/82321 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707)
2017-09-26 Richard Biener <rguenther@suse.de> PR tree-optimization/82321 * graphite.c (canonicalize_loop_closed_ssa): Properly check for the def being inside the loop. * gcc.dg/graphite/pr82321.c: New testcase. From-SVN: r253199
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/graphite.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr82321.c36
4 files changed, 50 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 87801a4..73823fc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-09-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/82321
+ * graphite.c (canonicalize_loop_closed_ssa): Properly check
+ for the def being inside the loop.
+
2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/vx-builtins.md ("vmslg"): Add missing operand in
diff --git a/gcc/graphite.c b/gcc/graphite.c
index 7e6ba50..6713df6 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -326,7 +326,9 @@ canonicalize_loop_closed_ssa (loop_p loop)
/* Only add close phi nodes for SSA_NAMEs defined in LOOP. */
if (TREE_CODE (arg) != SSA_NAME
- || loop_containing_stmt (SSA_NAME_DEF_STMT (arg)) != loop)
+ || SSA_NAME_IS_DEFAULT_DEF (arg)
+ || ! flow_bb_inside_loop_p (loop,
+ gimple_bb (SSA_NAME_DEF_STMT (arg))))
continue;
tree res = copy_ssa_name (arg);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 72cf8c3..5beffb30f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-09-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/82321
+ * gcc.dg/graphite/pr82321.c: New testcase.
+
2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* lib/target-supports.exp: Enable tests for S/390.
diff --git a/gcc/testsuite/gcc.dg/graphite/pr82321.c b/gcc/testsuite/gcc.dg/graphite/pr82321.c
new file mode 100644
index 0000000..9232147
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr82321.c
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -floop-nest-optimize" } */
+
+int y8;
+
+void
+dm (int io)
+{
+ if (y8 != 0)
+ {
+ int pu = 1;
+
+ while (io < 2)
+ {
+ int xo = (pu != 0) ? y8 : 0;
+
+ while (y8 != 0)
+ if (xo != 0)
+ {
+gi:
+ xo = (__INTPTR_TYPE__)&io;
+ pu = 0;
+ }
+ }
+ }
+
+ if (io != 0)
+ {
+ y8 = 1;
+ while (y8 != 0)
+ if (io / !y8 != 0)
+ y8 = 0;
+
+ goto gi;
+ }
+}