diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-02-28 21:20:26 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-02-28 21:20:26 +0000 |
commit | 7f7695a71d485b798de47d0a09e13bee4c75b703 (patch) | |
tree | 897ae70d6d0e70bf7f7d7013342324fa45972e27 /gcc/tree-vect-stmts.c | |
parent | 737ed42903d2d6d2311e524aef7bfbdba16c77fd (diff) | |
download | gcc-7f7695a71d485b798de47d0a09e13bee4c75b703.tar.gz |
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: svn+ssh://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.c | 32 |
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 (); |