summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-16 09:54:36 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-16 09:54:36 +0000
commit3e299f5d579987370d4824ff79b0b33868d7cdf4 (patch)
tree222248ef75fc9b6a3c7c0bfe3657c6acaef2e6b2 /gcc/tree-vect-loop.c
parent1e84c1e0ecaff35acdc7bab1fa5dd61244678e9b (diff)
downloadgcc-3e299f5d579987370d4824ff79b0b33868d7cdf4.tar.gz
2012-03-16 Richard Guenther <rguenther@suse.de>
* tree-vect-loop.c (get_initial_def_for_induction): Use build_constructor directly. * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use build_vector_from_val. * tree.c (build_vector_from_val): Avoid creating a constructor first when we want a constant vector. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185461 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index abba2b9dbca..abf131e3c26 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -3041,6 +3041,8 @@ get_initial_def_for_induction (gimple iv_phi)
}
else
{
+ VEC(constructor_elt,gc) *v;
+
/* iv_loop is the loop to be vectorized. Create:
vec_init = [X, X+S, X+2*S, X+3*S] (S = step_expr, X = init_expr) */
new_var = vect_get_new_vect_var (scalar_type, vect_scalar_var, "var_");
@@ -3053,8 +3055,8 @@ get_initial_def_for_induction (gimple iv_phi)
gcc_assert (!new_bb);
}
- t = NULL_TREE;
- t = tree_cons (NULL_TREE, new_name, t);
+ v = VEC_alloc (constructor_elt, gc, nunits);
+ CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, new_name);
for (i = 1; i < nunits; i++)
{
/* Create: new_name_i = new_name + step_expr */
@@ -3073,10 +3075,10 @@ get_initial_def_for_induction (gimple iv_phi)
fprintf (vect_dump, "created new init_stmt: ");
print_gimple_stmt (vect_dump, init_stmt, 0, TDF_SLIM);
}
- t = tree_cons (NULL_TREE, new_name, t);
+ CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, new_name);
}
/* Create a vector from [new_name_0, new_name_1, ..., new_name_nunits-1] */
- vec = build_constructor_from_list (vectype, nreverse (t));
+ vec = build_constructor (vectype, v);
vec_init = vect_init_vector (iv_phi, vec, vectype, NULL);
}