aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-11-19 15:44:08 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-11-19 15:44:08 +0100
commit4cb3570c8c453a830589b717d8519daa31ec7468 (patch)
treeb93cf7c2f59be7bcc90e7b257aaff0a9968f7717
parent3b60ab0aab44841a4b7206ecb658fc761959d93c (diff)
downloadgcc-4cb3570c8c453a830589b717d8519daa31ec7468.zip
gcc-4cb3570c8c453a830589b717d8519daa31ec7468.tar.gz
gcc-4cb3570c8c453a830589b717d8519daa31ec7468.tar.bz2
re PR tree-optimization/88071 (ICE: verify_gimple failed (error: dead STMT in EH table))
PR tree-optimization/88071 * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead of false as last argument to gsi_remove. * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of false as last argument to gsi_replace. * gcc.dg/pr88071.c: New test. From-SVN: r266276
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/pr88071.c5
-rw-r--r--gcc/tree-vect-loop.c2
-rw-r--r--gcc/tree-vect-stmts.c2
5 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dab8874..d7db678 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2018-11-19 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/88071
+ * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead
+ of false as last argument to gsi_remove.
+ * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of
+ false as last argument to gsi_replace.
+
PR debug/87039
* omp-expand.c: Don't include debug.h.
(adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 51196ba..0c86721 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2018-11-19 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/88071
+ * gcc.dg/pr88071.c: New test.
+
PR c++/60994
* g++.dg/lookup/pr60994.C: New test.
diff --git a/gcc/testsuite/gcc.dg/pr88071.c b/gcc/testsuite/gcc.dg/pr88071.c
new file mode 100644
index 0000000..680bf8b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr88071.c
@@ -0,0 +1,5 @@
+/* PR tree-optimization/88071 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fexceptions -fnon-call-exceptions -fopenmp-simd -ftrapv -ftree-loop-vectorize" } */
+
+#include "gomp/openmp-simd-2.c"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index f2d9d8a..81d8d46 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -5861,7 +5861,7 @@ vectorize_fold_left_reduction (stmt_vec_info stmt_info,
/* Remove the statement, so that we can use the same code paths
as for statements that we've just created. */
gimple_stmt_iterator tmp_gsi = gsi_for_stmt (new_stmt);
- gsi_remove (&tmp_gsi, false);
+ gsi_remove (&tmp_gsi, true);
}
if (i == vec_num - 1)
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 764810b..e41602d 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -1720,7 +1720,7 @@ vect_finish_replace_stmt (stmt_vec_info stmt_info, gimple *vec_stmt)
gcc_assert (gimple_get_lhs (stmt_info->stmt) == gimple_get_lhs (vec_stmt));
gimple_stmt_iterator gsi = gsi_for_stmt (stmt_info->stmt);
- gsi_replace (&gsi, vec_stmt, false);
+ gsi_replace (&gsi, vec_stmt, true);
return vect_finish_stmt_generation_1 (stmt_info, vec_stmt);
}