diff options
author | Richard Biener <rguenther@suse.de> | 2018-11-06 10:23:30 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-11-06 10:23:30 +0000 |
commit | d8564d453161dc5302445d00b0e24b0b9c48206f (patch) | |
tree | e6241647b54159df48d067782af18ee254f51458 /gcc | |
parent | 8c21b0d164f33d9d47acc26f4f9b99b53e3b1945 (diff) | |
download | gcc-d8564d453161dc5302445d00b0e24b0b9c48206f.zip gcc-d8564d453161dc5302445d00b0e24b0b9c48206f.tar.gz gcc-d8564d453161dc5302445d00b0e24b0b9c48206f.tar.bz2 |
re PR tree-optimization/87889 (CPU2000 177.mesa failed to build)
2018-11-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/87889
* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
Do nothing if old and new arg are the same
* gcc.dg/pr87894.c: New testcase.
From-SVN: r265833
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr87894.c | 26 | ||||
-rw-r--r-- | gcc/tree-vect-loop-manip.c | 3 |
4 files changed, 39 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f5be58a..95d2245 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-11-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/87889 + * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): + Do nothing if old and new arg are the same + 2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com> PR target/87723 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 17f6968..225850d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-11-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/87889 + * gcc.dg/pr87894.c: New testcase. + 2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com> PR target/87723 diff --git a/gcc/testsuite/gcc.dg/pr87894.c b/gcc/testsuite/gcc.dg/pr87894.c new file mode 100644 index 0000000..921a9ce --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr87894.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast" } */ + +int a, b, c, d; +double e; + +void f(double g[][1]) +{ + for (;;) + { + double h; + for (; b < c; b++) + { + if (b >= 0) + ; + else if (d) + h = 2.0; + else + h = 0.0; + if (e) + g[a][b] = 0.0; + g[a][b] = h; + } + } +} + diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c index f1b023b..d4e71b7 100644 --- a/gcc/tree-vect-loop-manip.c +++ b/gcc/tree-vect-loop-manip.c @@ -977,7 +977,8 @@ slpeel_duplicate_current_defs_from_edges (edge from, edge to) } if (TREE_CODE (from_arg) != SSA_NAME) gcc_assert (operand_equal_p (from_arg, to_arg, 0)); - else if (TREE_CODE (to_arg) == SSA_NAME) + else if (TREE_CODE (to_arg) == SSA_NAME + && from_arg != to_arg) { if (get_current_def (to_arg) == NULL_TREE) { |