From: Tom de Vries Date: Wed, 16 Mar 2016 09:19:12 +0000 (+0000) Subject: Fix same_close_phi_node X-Git-Tag: upstream/12.2.0~48282 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be7ce7aefd00f15e98f2802cfe3434dcca517643;p=platform%2Fupstream%2Fgcc.git Fix same_close_phi_node 2016-03-16 Tom de Vries 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 --- 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 + + 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 Sandra Loosemore 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 + + PR tree-optimization/68809 + * gcc.dg/graphite/pr68809-2.c: New test. + * gcc.dg/graphite/pr68809.c: New test. + 2016-03-16 Jakub Jelinek 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); +}