aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2020-04-03 02:10:08 -0500
committerKewen Lin <linkw@linux.ibm.com>2020-04-03 03:07:46 -0500
commit4441ecedc3d74114683761901075085651928c52 (patch)
tree449a8666b1f7b8ac0bf188b7b107c4c3b88c58e8 /gcc
parent55a7380213a5c16120d5c674fb42b38a3d796b57 (diff)
downloadgcc-4441ecedc3d74114683761901075085651928c52.zip
gcc-4441ecedc3d74114683761901075085651928c52.tar.gz
gcc-4441ecedc3d74114683761901075085651928c52.tar.bz2
Fix PR94443 with gsi_insert_seq_before [PR94443]
This patch is to fix the stupid mistake by using gsi_insert_seq_before instead of gsi_insert_before. BTW, the regression testing on one x86_64 machine from CFarm is unable to reveal it (I guess due to native arch sandybridge?), so I specified additional option -march=znver2 and verified the coverage. Bootstrapped/regtested on powerpc64le-linux-gnu (P9) and x86_64-pc-linux-gnu, also verified the fail cases in related PRs. 2020-04-03 Kewen Lin <linkw@gcc.gnu.org> gcc/ PR tree-optimization/94443 * tree-vect-loop.c (vectorizable_live_operation): Use gsi_insert_seq_before to replace gsi_insert_before. gcc/testsuite/ PR tree-optimization/94443 * gcc.dg/vect/pr94443.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr94443.c13
-rw-r--r--gcc/tree-vect-loop.c4
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3087c58..472ce17 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
+
+ PR tree-optimization/94443
+ * tree-vect-loop.c (vectorizable_live_operation): Use
+ gsi_insert_seq_before to replace gsi_insert_before.
+
2020-04-03 Martin Liska <mliska@suse.cz>
PR ipa/94445
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cd8d7e1..927abc8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
+
+ PR tree-optimization/94443
+ * gcc.dg/vect/pr94443.c: New test.
+
2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
* lib/target-supports.exp (check_effective_target_sigsetjmp): Test
diff --git a/gcc/testsuite/gcc.dg/vect/pr94443.c b/gcc/testsuite/gcc.dg/vect/pr94443.c
new file mode 100644
index 0000000..f8cbaf1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr94443.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=znver2" { target { x86_64-*-* i?86-*-* } } } */
+
+/* Check it to be compiled successfully without any ICE. */
+
+int a;
+unsigned *b;
+
+void foo()
+{
+ for (unsigned i; i <= a; ++i, ++b)
+ ;
+}
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index c9b6534..265bcfd 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -8050,7 +8050,7 @@ vectorizable_live_operation (stmt_vec_info stmt_info,
if (stmts)
{
gimple_stmt_iterator exit_gsi = gsi_after_labels (exit_bb);
- gsi_insert_before (&exit_gsi, stmts, GSI_CONTINUE_LINKING);
+ gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
/* Remove existing phi from lhs and create one copy from new_tree. */
tree lhs_phi = NULL_TREE;
@@ -8063,7 +8063,7 @@ vectorizable_live_operation (stmt_vec_info stmt_info,
remove_phi_node (&gsi, false);
lhs_phi = gimple_phi_result (phi);
gimple *copy = gimple_build_assign (lhs_phi, new_tree);
- gsi_insert_after (&exit_gsi, copy, GSI_CONTINUE_LINKING);
+ gsi_insert_before (&exit_gsi, copy, GSI_SAME_STMT);
break;
}
}