diff options
author | Richard Biener <rguenther@suse.de> | 2017-09-26 11:05:42 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-09-26 11:05:42 +0000 |
commit | 621e53705ae51337f78713a868ff3dd41f950422 (patch) | |
tree | a961530067a06df9d1f7d288effaa6de55d0123e /gcc | |
parent | 17ec4b792b8a5c8b454928efe409f62c4e356ffe (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/graphite.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/pr82321.c | 36 |
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; + } +} |