aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-stmts.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-02-28 21:20:26 +0000
committerJakub Jelinek <jakub@redhat.com>2013-02-28 21:20:26 +0000
commit1e6b1ea06e9c8b5a0d41f364f3934ca61348a2f4 (patch)
tree897ae70d6d0e70bf7f7d7013342324fa45972e27 /gcc/tree-vect-stmts.c
parentd3db0cd5ba6f90abe3a4839531df5eb418e745a5 (diff)
PR middle-end/56461
* tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument type to vec<vec<tree> > *. * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs to be vec<tree> instead of vec<tree> *, set vec_defs to vNULL and call vec_defs.create (number_of_vects), adjust other uses of vec_defs. * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call, vectorizable_condition): Adjust vect_get_slp_defs callers. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@196360 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r--gcc/tree-vect-stmts.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 37f24234a9c..7ba76cd5f2e 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -1583,7 +1583,7 @@ vect_get_vec_defs (tree op0, tree op1, gimple stmt,
int nops = (op1 == NULL_TREE) ? 1 : 2;
vec<tree> ops;
ops.create (nops);
- vec<slp_void_p> vec_defs;
+ vec<vec<tree> > vec_defs;
vec_defs.create (nops);
ops.quick_push (op0);
@@ -1592,9 +1592,9 @@ vect_get_vec_defs (tree op0, tree op1, gimple stmt,
vect_get_slp_defs (ops, slp_node, &vec_defs, reduc_index);
- *vec_oprnds0 = *((vec<tree> *) vec_defs[0]);
+ *vec_oprnds0 = vec_defs[0];
if (op1)
- *vec_oprnds1 = *((vec<tree> *) vec_defs[1]);
+ *vec_oprnds1 = vec_defs[1];
ops.release ();
vec_defs.release ();
@@ -1882,14 +1882,14 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (slp_node)
{
- vec<slp_void_p> vec_defs;
+ vec<vec<tree> > vec_defs;
vec_defs.create (nargs);
vec<tree> vec_oprnds0;
for (i = 0; i < nargs; i++)
vargs.quick_push (gimple_call_arg (stmt, i));
vect_get_slp_defs (vargs, slp_node, &vec_defs, -1);
- vec_oprnds0 = *((vec<tree> *) vec_defs[0]);
+ vec_oprnds0 = vec_defs[0];
/* Arguments are ready. Create the new vector stmt. */
FOR_EACH_VEC_ELT (vec_oprnds0, i, vec_oprnd0)
@@ -1897,7 +1897,7 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
size_t k;
for (k = 0; k < nargs; k++)
{
- vec<tree> vec_oprndsk = *((vec<tree> *) vec_defs[k]);
+ vec<tree> vec_oprndsk = vec_defs[k];
vargs[k] = vec_oprndsk[i];
}
new_stmt = gimple_build_call_vec (fndecl, vargs);
@@ -1909,7 +1909,7 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
for (i = 0; i < nargs; i++)
{
- vec<tree> vec_oprndsi = *((vec<tree> *) vec_defs[i]);
+ vec<tree> vec_oprndsi = vec_defs[i];
vec_oprndsi.release ();
}
vec_defs.release ();
@@ -1958,14 +1958,14 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (slp_node)
{
- vec<slp_void_p> vec_defs;
+ vec<vec<tree> > vec_defs;
vec_defs.create (nargs);
vec<tree> vec_oprnds0;
for (i = 0; i < nargs; i++)
vargs.quick_push (gimple_call_arg (stmt, i));
vect_get_slp_defs (vargs, slp_node, &vec_defs, -1);
- vec_oprnds0 = *((vec<tree> *) vec_defs[0]);
+ vec_oprnds0 = vec_defs[0];
/* Arguments are ready. Create the new vector stmt. */
for (i = 0; vec_oprnds0.iterate (i, &vec_oprnd0); i += 2)
@@ -1974,7 +1974,7 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
vargs.truncate (0);
for (k = 0; k < nargs; k++)
{
- vec<tree> vec_oprndsk = *((vec<tree> *) vec_defs[k]);
+ vec<tree> vec_oprndsk = vec_defs[k];
vargs.quick_push (vec_oprndsk[i]);
vargs.quick_push (vec_oprndsk[i + 1]);
}
@@ -1987,7 +1987,7 @@ vectorizable_call (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
for (i = 0; i < nargs; i++)
{
- vec<tree> vec_oprndsi = *((vec<tree> *) vec_defs[i]);
+ vec<tree> vec_oprndsi = vec_defs[i];
vec_oprndsi.release ();
}
vec_defs.release ();
@@ -5392,7 +5392,7 @@ vectorizable_condition (gimple stmt, gimple_stmt_iterator *gsi,
{
vec<tree> ops;
ops.create (4);
- vec<slp_void_p> vec_defs;
+ vec<vec<tree> > vec_defs;
vec_defs.create (4);
ops.safe_push (TREE_OPERAND (cond_expr, 0));
@@ -5400,10 +5400,10 @@ vectorizable_condition (gimple stmt, gimple_stmt_iterator *gsi,
ops.safe_push (then_clause);
ops.safe_push (else_clause);
vect_get_slp_defs (ops, slp_node, &vec_defs, -1);
- vec_oprnds3 = *((vec<tree> *) vec_defs.pop ());
- vec_oprnds2 = *((vec<tree> *) vec_defs.pop ());
- vec_oprnds1 = *((vec<tree> *) vec_defs.pop ());
- vec_oprnds0 = *((vec<tree> *) vec_defs.pop ());
+ vec_oprnds3 = vec_defs.pop ();
+ vec_oprnds2 = vec_defs.pop ();
+ vec_oprnds1 = vec_defs.pop ();
+ vec_oprnds0 = vec_defs.pop ();
ops.release ();
vec_defs.release ();