diff options
author | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-05-25 07:56:32 +0000 |
---|---|---|
committer | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-05-25 07:56:32 +0000 |
commit | 765a637f0e40c74ccb892fa61053af36738456b7 (patch) | |
tree | 0b5321d9c900d16365e4970cc0a06605923773b1 | |
parent | 1eb4ddaff88afdbaa1a7d5ecf9c4fc61800078b2 (diff) | |
download | gcc-765a637f0e40c74ccb892fa61053af36738456b7.tar.gz |
PR tree-optimization/40238
* tree-vect-stmts.c (vect_init_vector): Insert initialization
statements after basic block's labels.
* tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
to free the allocated memory.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147844 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr40238.c | 35 | ||||
-rw-r--r-- | gcc/tree-vect-slp.c | 3 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 2 |
5 files changed, 51 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 78985d3a1ba..5696b43b4ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-05-25 Ira Rosen <irar@il.ibm.com> + + PR tree-optimization/40238 + * tree-vect-stmts.c (vect_init_vector): Insert initialization + statements after basic block's labels. + * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() + to free the allocated memory. + 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org> * gcc/config/sh/sh.c (sh_set_return_address): Mark store of diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e0907db628f..7a7231036de 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-05-25 Ira Rosen <irar@il.ibm.com> + + PR tree-optimization/40238 + * gcc.dg/vect/pr40238.c: New test. + 2009-05-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> Dominique Dhumieres diff --git a/gcc/testsuite/gcc.dg/vect/pr40238.c b/gcc/testsuite/gcc.dg/vect/pr40238.c new file mode 100644 index 00000000000..91cf0982439 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr40238.c @@ -0,0 +1,35 @@ +/* { dg-do compile } */ + +extern int xdo_rb_ctr_row( int *pos_code); + +int xgp_ahd_interpolate (int tile) +{ + int p[4]; + + switch (tile) { + default: + case 0: + case 1: + p[0] = 0; p[1] = 1; p[2] = 2; p[3] = 3; + break; + case 2: + case 3: + p[0] = 1; p[1] = 0; p[2] = 3; p[3] = 2; + break; + case 4: + case 5: + p[0] = 3; p[1] = 2; p[2] = 1; p[3] = 0; + break; + case 6: + case 7: + p[0] = 2; p[1] = 3; p[2] = 0; p[3] = 1; + break; + } + + xdo_rb_ctr_row(p); + xdo_rb_ctr_row(p); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ + diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index ece3297422b..6c932109baf 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -2089,6 +2089,7 @@ vect_slp_transform_bb (basic_block bb) if (vect_print_dump_info (REPORT_DETAILS)) fprintf (vect_dump, "BB VECTORIZED\n"); -} + destroy_bb_vec_info (bb_vinfo); +} diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 9ac733a76be..5ca8d942e18 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -833,7 +833,7 @@ vect_init_vector (gimple stmt, tree vector_var, tree vector_type, gcc_assert (bb_vinfo); bb = BB_VINFO_BB (bb_vinfo); - gsi_bb_start = gsi_start_bb (bb); + gsi_bb_start = gsi_after_labels (bb); gsi_insert_before (&gsi_bb_start, init_stmt, GSI_SAME_STMT); } } |