From: Jakub Jelinek Date: Tue, 17 Dec 2013 21:36:21 +0000 (+0100) Subject: re PR tree-optimization/59523 (r205856 caused internal compiler error: verify_ssa... X-Git-Tag: releases/gcc-4.9.0~2018 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=14407011d62da724e88ac0cb30390d3f8fda2b9f;p=thirdparty%2Fgcc.git re PR tree-optimization/59523 (r205856 caused internal compiler error: verify_ssa failed) PR tree-optimization/59523 * tree-vectorizer.c (fold_loop_vectorized_call): Call update_stmt on updated stmts. * gcc.dg/pr59523.c: New test. From-SVN: r206069 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7989720c121..58613eef0934 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-12-17 Jakub Jelinek + + PR tree-optimization/59523 + * tree-vectorizer.c (fold_loop_vectorized_call): Call update_stmt + on updated stmts. + 2013-12-17 Aldy Hernandez * ipa-inline.c (gate_ipa_inline): Remove. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d0b796cb91a1..29110efb85ba 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-12-17 Jakub Jelinek + + PR tree-optimization/59523 + * gcc.dg/pr59523.c: New test. + 2013-12-17 Marek Polacek * c-c++-common/ubsan/overflow-int128.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr59523.c b/gcc/testsuite/gcc.dg/pr59523.c new file mode 100644 index 000000000000..b523eaea8a15 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr59523.c @@ -0,0 +1,17 @@ +/* PR tree-optimization/59523 */ +/* { dg-do compile } */ +/* { dg-options "-O3" } */ +/* { dg-additional-options "-mavx2" { target { i?86-*-* x86_64-*-* } } } */ + +int * +foo (int a, int *b, int *c, int *d) +{ + int i, *r = __builtin_alloca (a * sizeof (int)); + __builtin_memcpy (r, d, a * sizeof (int)); + for (i = 0; i < 64; i++) + c[i] += b[i]; + for (i = 0; i < a; i++) + if (r[i] == 0) + r[i] = 1; + return r; +} diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 1c411c4dec65..e3e552b81f2c 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -369,8 +369,11 @@ fold_loop_vectorized_call (gimple g, tree value) update_call_from_tree (&gsi, value); FOR_EACH_IMM_USE_STMT (use_stmt, iter, lhs) - FOR_EACH_IMM_USE_ON_STMT (use_p, iter) - SET_USE (use_p, value); + { + FOR_EACH_IMM_USE_ON_STMT (use_p, iter) + SET_USE (use_p, value); + update_stmt (use_stmt); + } } /* Function vectorize_loops.