aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKugan Vivekanandarajah <kuganv@linaro.org>2016-05-24 22:29:27 +0000
committerKugan Vivekanandarajah <kugan@gcc.gnu.org>2016-05-24 22:29:27 +0000
commit2bc145afaa6db175fa6d6e7556432ad27f13289b (patch)
treebba95c0e089fdfca7bcaa8a0c3ee2bb3eacd8c3f
parent26869fdb471ee8d0fcdcf3d27f5ac5dbadc7b5e0 (diff)
downloadgcc-2bc145afaa6db175fa6d6e7556432ad27f13289b.zip
gcc-2bc145afaa6db175fa6d6e7556432ad27f13289b.tar.gz
gcc-2bc145afaa6db175fa6d6e7556432ad27f13289b.tar.bz2
tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb when there is stmt_to_insert.
gcc/ChangeLog: 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org> * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb when there is stmt_to_insert. gcc/testsuite/ChangeLog: 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org> * gcc.dg/tree-ssa/reassoc-44.c: New test. From-SVN: r236673
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c9
-rw-r--r--gcc/tree-ssa-reassoc.c2
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b07aa80..238cd07 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
+
+ * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
+ when there is stmt_to_insert.
+
2016-05-24 Martin Sebor <msebor@redhat.com>
PR c++/71147
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a2821a7..d81eedd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
+
+ * gcc.dg/tree-ssa/reassoc-44.c: New test.
+
2016-05-24 Pat Haugen <pthaugen@us.ibm.com>
PR target/71050
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c
new file mode 100644
index 0000000..1d946f6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+unsigned int a;
+int b, c;
+void fn1 ()
+{
+ b = a + c + c;
+}
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 3b02667..c9ed679 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -519,6 +519,8 @@ sort_by_operand_rank (const void *pa, const void *pb)
See PR60418. */
if (!SSA_NAME_IS_DEFAULT_DEF (oea->op)
&& !SSA_NAME_IS_DEFAULT_DEF (oeb->op)
+ && !oea->stmt_to_insert
+ && !oeb->stmt_to_insert
&& SSA_NAME_VERSION (oeb->op) != SSA_NAME_VERSION (oea->op))
{
gimple *stmta = SSA_NAME_DEF_STMT (oea->op);