aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-11-06 10:23:30 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-11-06 10:23:30 +0000
commitd8564d453161dc5302445d00b0e24b0b9c48206f (patch)
treee6241647b54159df48d067782af18ee254f51458 /gcc
parent8c21b0d164f33d9d47acc26f4f9b99b53e3b1945 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr87894.c26
-rw-r--r--gcc/tree-vect-loop-manip.c3
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)
{