aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-02 11:52:15 +0000
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-02 11:52:15 +0000
commited243388a684fe3c495c6a94a2e98684aa4b7e79 (patch)
tree1e9f60d4ee1b8a71ee3949aebf2a305e9f557b62 /gcc
parentc310e1dccd408e26aeeab56e6bcb10c584d616f6 (diff)
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144541 138bc75d-0d04-0410-961f-82ee72b054a4
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 012e8087e6a..18ebfbf0ea1 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 b1afa603960..239c9e4aacc 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 00000000000..9e58a17b526
--- /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 abb33e251ac..5f9884f0010 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