aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-03-02 11:52:15 +0000
committerIra Rosen <irar@gcc.gnu.org>2009-03-02 11:52:15 +0000
commit6dfb529ce2820d176b3f4c637a23544998377e39 (patch)
tree1e9f60d4ee1b8a71ee3949aebf2a305e9f557b62 /gcc
parentcbf92fc258302dc21b6720f01a0c1ae40b68fd5d (diff)
downloadgcc-6dfb529ce2820d176b3f4c637a23544998377e39.zip
gcc-6dfb529ce2820d176b3f4c637a23544998377e39.tar.gz
gcc-6dfb529ce2820d176b3f4c637a23544998377e39.tar.bz2
re PR middle-end/39318 (internal compiler error: verify_stmts failed)
2009-03-02 Richard Guenther <rguenther@suse.de> Ira Rosen <irar@il.ibm.com> PR tree-optimization/39318 * tree-vect-transform.c (vectorizable_call): Transfer the EH region information to the vectorized statement. Co-Authored-By: Ira Rosen <irar@il.ibm.com> From-SVN: r144541
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/vect/pr39318.f9021
-rw-r--r--gcc/tree-vect-transform.c4
4 files changed, 38 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 012e808..18ebfbf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-03-02 Richard Guenther <rguenther@suse.de>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/39318
+ * tree-vect-transform.c (vectorizable_call): Transfer the EH region
+ information to the vectorized statement.
+
2009-03-01 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b1afa60..239c9e4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-02 Richard Guenther <rguenther@suse.de>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/39318
+ * gfortran.dg/vect/pr39318.f90: New test.
+
2009-03-01 Jan Hubicka <jh@suse.cz>
* gcc.dg/debug/dwarf2/ipa-cp1.c: New testcase.
diff --git a/gcc/testsuite/gfortran.dg/vect/pr39318.f90 b/gcc/testsuite/gfortran.dg/vect/pr39318.f90
new file mode 100644
index 0000000..9e58a17
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/vect/pr39318.f90
@@ -0,0 +1,21 @@
+! { dg-do compile }
+! { dg-options "-c -fopenmp -fexceptions -O2 -ftree-vectorize" }
+
+ subroutine adw_trajsp (F_u,i0,in,j0,jn)
+ implicit none
+ real F_u(*)
+ integer i0,in,j0,jn
+ integer n,i,j
+ real*8 xsin(i0:in,j0:jn)
+!$omp parallel do private(xsin)
+ do j=j0,jn
+ do i=i0,in
+ xsin(i,j) = sqrt(F_u(n))
+ end do
+ end do
+!$omp end parallel do
+ return
+ end
+
+! { dg-final { cleanup-tree-dump "vect" } }
+
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index abb33e25..5f9884f 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -3450,6 +3450,10 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt)
VEC_free (tree, heap, vargs);
+ /* Update the exception handling table with the vector stmt if necessary. */
+ if (maybe_clean_or_replace_eh_stmt (stmt, *vec_stmt))
+ gimple_purge_dead_eh_edges (gimple_bb (stmt));
+
/* The call in STMT might prevent it from being removed in dce.
We however cannot remove it here, due to the way the ssa name
it defines is mapped to the new definition. So just replace