aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <andrew_pinski@playstation.sony.com>2007-06-07 02:12:31 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2007-06-06 19:12:31 -0700
commit1344284efadc70769312bb0707a8266cc50260ce (patch)
tree64c2efc348ee53773e1f761df1cf3c0f5a99d714 /gcc
parent08835e64d378b7f6bf61b88d93850dd81f25030d (diff)
downloadgcc-1344284efadc70769312bb0707a8266cc50260ce.zip
gcc-1344284efadc70769312bb0707a8266cc50260ce.tar.gz
gcc-1344284efadc70769312bb0707a8266cc50260ce.tar.bz2
re PR tree-optimization/32231 (Segfault in verify_ssa_name)
2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/32231 * tree-vect-transform.c (vectorizable_call): Call update_stmt after changing the right hand side of the assignment. 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/32231 * gcc.target/i386/vectorize4.c: New test. From-SVN: r125521
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/vectorize4.c16
-rw-r--r--gcc/tree-vect-transform.c1
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 44fef00..f95d01a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/32231
+ * tree-vect-transform.c (vectorizable_call): Call update_stmt
+ after changing the right hand side of the assignment.
+
2007-06-06 Eric Christopher <echristo@apple.com>
* config.gcc (i?86-*-darwin*): Remove arch parameter.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d7cc977..a1852f0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/32231
+ * gcc.target/i386/vectorize4.c: New test.
+
2007-06-06 Steve Ellcey <sje@cup.hp.com>
* gfortran.dg/integer_exponentiation_3.F90: Use approx. check.
diff --git a/gcc/testsuite/gcc.target/i386/vectorize4.c b/gcc/testsuite/gcc.target/i386/vectorize4.c
new file mode 100644
index 0000000..f3d605e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/vectorize4.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
+/* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue. */
+
+
+extern double sqrt (double __x);
+calc_freq (int *dest)
+{
+ float tmp_out[257];
+ int i;
+ for (i = 0; i < 256; i++)
+ dest[i] = sqrt (tmp_out[i]);
+}
+
+/* { dg-final { scan-assembler "sqrtpd" } } */
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index 6108532..eff1ed7 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -1926,6 +1926,7 @@ vectorizable_call (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
harmless. */
type = TREE_TYPE (scalar_dest);
GIMPLE_STMT_OPERAND (stmt, 1) = fold_convert (type, integer_zero_node);
+ update_stmt (stmt);
return true;
}