diff options
author | Andrew Pinski <andrew_pinski@playstation.sony.com> | 2007-06-07 02:12:31 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2007-06-06 19:12:31 -0700 |
commit | 1344284efadc70769312bb0707a8266cc50260ce (patch) | |
tree | 64c2efc348ee53773e1f761df1cf3c0f5a99d714 /gcc | |
parent | 08835e64d378b7f6bf61b88d93850dd81f25030d (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/vectorize4.c | 16 | ||||
-rw-r--r-- | gcc/tree-vect-transform.c | 1 |
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; } |