diff options
author | Tom de Vries <tom@codesourcery.com> | 2016-03-16 09:19:12 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2016-03-16 09:19:12 +0000 |
commit | be7ce7aefd00f15e98f2802cfe3434dcca517643 (patch) | |
tree | ba4d740a7622c18269bd8ac6c22f41fcda01cb2f | |
parent | 6651c93e42d125b151a4a2631fbb912c8d5a986a (diff) | |
download | gcc-be7ce7aefd00f15e98f2802cfe3434dcca517643.zip gcc-be7ce7aefd00f15e98f2802cfe3434dcca517643.tar.gz gcc-be7ce7aefd00f15e98f2802cfe3434dcca517643.tar.bz2 |
Fix same_close_phi_node
2016-03-16 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/68809
* graphite-scop-detection.c (same_close_phi_node): Test if result types
are the same.
* gcc.dg/graphite/pr68809-2.c: New test.
* gcc.dg/graphite/pr68809.c: New test.
From-SVN: r234250
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/graphite-scop-detection.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/pr68809-2.c | 27 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/pr68809.c | 28 |
5 files changed, 71 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68fcd05..d8f2eea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-03-16 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/68809 + * graphite-scop-detection.c (same_close_phi_node): Test if result types + are the same. + 2016-03-16 Carlos O'Donell <carlos@redhat.com> Sandra Loosemore <sandra@codesourcery.com> diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index 03b1c49..e20baa10 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -273,8 +273,10 @@ trivially_empty_bb_p (basic_block bb) static inline bool same_close_phi_node (gphi *p1, gphi *p2) { - return operand_equal_p (gimple_phi_arg_def (p1, 0), - gimple_phi_arg_def (p2, 0), 0); + return (types_compatible_p (TREE_TYPE (gimple_phi_result (p1)), + TREE_TYPE (gimple_phi_result (p2))) + && operand_equal_p (gimple_phi_arg_def (p1, 0), + gimple_phi_arg_def (p2, 0), 0)); } static void make_close_phi_nodes_unique (basic_block bb); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 52994cc..90e19ee 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-03-16 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/68809 + * gcc.dg/graphite/pr68809-2.c: New test. + * gcc.dg/graphite/pr68809.c: New test. + 2016-03-16 Jakub Jelinek <jakub@redhat.com> PR c++/70147 diff --git a/gcc/testsuite/gcc.dg/graphite/pr68809-2.c b/gcc/testsuite/gcc.dg/graphite/pr68809-2.c new file mode 100644 index 0000000..e6639b8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr68809-2.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -floop-nest-optimize" } */ + +int ae, vs, gf; +char ue; + +void +kc (char); + +void +pm (void) +{ + unsigned int v9; + int td = (gf != 0); + while (vs) + { + kc (ue); + for (ae = 0; ae < 70; ++ae) + { + } + ae &= 4; + ae ^ td && ((ue = 0) != 0); + ++vs; + } + v9 = ue + 1; + ue - v9 && ((ue = 0) != 0); +} diff --git a/gcc/testsuite/gcc.dg/graphite/pr68809.c b/gcc/testsuite/gcc.dg/graphite/pr68809.c new file mode 100644 index 0000000..1d75841 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr68809.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -floop-nest-optimize" } */ + +int ae, vs; +char ue; + +void +kc (char); + +void +pm (void) +{ + unsigned int v9; + int gf = 0; + vs = 1; + while (vs) + { + gf -= ue; + kc (ue); + for (ae = 0; ae < 70; ++ae) + { + } + ae &= 4; + ae ^ (gf != 0) && ((ue = 0) != 0); + } + v9 = ue + 1; + ue - v9 && ((ue = 0) != 0); +} |