aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-data-refs.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-07-17 15:12:05 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-07-17 15:12:05 +0000
commit65876d249e4992e87c5c6aa30a87dfac88752a60 (patch)
tree693869f5109ae80dc471c399197f39eba86528e4 /gcc/tree-vect-data-refs.c
parent7cb151c045c2ad9355d4dbfac0ec91a9c3c45eb7 (diff)
downloadgcc-65876d249e4992e87c5c6aa30a87dfac88752a60.zip
gcc-65876d249e4992e87c5c6aa30a87dfac88752a60.tar.gz
gcc-65876d249e4992e87c5c6aa30a87dfac88752a60.tar.bz2
tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced vars here, use create_tmp_reg where appropriate.
2012-07-17 Richard Guenther <rguenther@suse.de> * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced vars here, use create_tmp_reg where appropriate. (vect_create_addr_base_for_vector_ref): Do not add referenced vars here, use create_tmp_reg where appropriate. (vect_create_data_ref_ptr): Likewise. (vect_create_destination_var): Likewise. (vect_permute_store_chain): Likewise. (vect_permute_load_chain): Likewise. * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. * tree-vect-loop.c (get_initial_def_for_induction): Likewise. * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise. (vect_handle_widen_op_by_const): Likewise. * tree-vect-stmts.c (vect_init_vector): Likewise. (vectorizable_load): Likewise. From-SVN: r189581
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r--gcc/tree-vect-data-refs.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 1bec2b1..dd0752e 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -3397,15 +3397,12 @@ vect_get_new_vect_var (tree type, enum vect_var_kind var_kind, const char *name)
if (name)
{
char* tmp = concat (prefix, name, NULL);
- new_vect_var = create_tmp_var (type, tmp);
+ new_vect_var = create_tmp_reg (type, tmp);
free (tmp);
}
else
- new_vect_var = create_tmp_var (type, prefix);
-
- /* Mark vector typed variable as a gimple register variable. */
- if (TREE_CODE (type) == VECTOR_TYPE)
- DECL_GIMPLE_REG_P (new_vect_var) = true;
+ new_vect_var = create_tmp_reg (type, prefix);
+ add_referenced_var (new_vect_var);
return new_vect_var;
}
@@ -3533,7 +3530,6 @@ vect_create_addr_base_for_vector_ref (gimple stmt,
vec_stmt = fold_convert (vect_ptr_type, addr_base);
addr_expr = vect_get_new_vect_var (vect_ptr_type, vect_pointer_var,
get_name (base_name));
- add_referenced_var (addr_expr);
vec_stmt = force_gimple_operand (vec_stmt, &seq, false, addr_expr);
gimple_seq_add_seq (new_stmt_list, seq);
@@ -3732,8 +3728,6 @@ vect_create_data_ref_ptr (gimple stmt, tree aggr_type, struct loop *at_loop,
while (orig_stmt);
}
- add_referenced_var (aggr_ptr);
-
/* Note: If the dataref is in an inner-loop nested in LOOP, and we are
vectorizing LOOP (i.e., outer-loop vectorization), we need to create two
def-use update cycles for the pointer: one relative to the outer-loop
@@ -3983,7 +3977,6 @@ vect_create_destination_var (tree scalar_dest, tree vectype)
if (!new_name)
new_name = "var_";
vec_dest = vect_get_new_vect_var (type, kind, new_name);
- add_referenced_var (vec_dest);
return vec_dest;
}
@@ -4144,8 +4137,7 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain,
/* Create interleaving stmt:
high = VEC_PERM_EXPR <vect1, vect2, {0, nelt, 1, nelt+1, ...}> */
- perm_dest = create_tmp_var (vectype, "vect_inter_high");
- DECL_GIMPLE_REG_P (perm_dest) = 1;
+ perm_dest = create_tmp_reg (vectype, "vect_inter_high");
add_referenced_var (perm_dest);
high = make_ssa_name (perm_dest, NULL);
perm_stmt
@@ -4157,8 +4149,7 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain,
/* Create interleaving stmt:
low = VEC_PERM_EXPR <vect1, vect2, {nelt/2, nelt*3/2, nelt/2+1,
nelt*3/2+1, ...}> */
- perm_dest = create_tmp_var (vectype, "vect_inter_low");
- DECL_GIMPLE_REG_P (perm_dest) = 1;
+ perm_dest = create_tmp_reg (vectype, "vect_inter_low");
add_referenced_var (perm_dest);
low = make_ssa_name (perm_dest, NULL);
perm_stmt
@@ -4601,8 +4592,7 @@ vect_permute_load_chain (VEC(tree,heap) *dr_chain,
second_vect = VEC_index (tree, dr_chain, j+1);
/* data_ref = permute_even (first_data_ref, second_data_ref); */
- perm_dest = create_tmp_var (vectype, "vect_perm_even");
- DECL_GIMPLE_REG_P (perm_dest) = 1;
+ perm_dest = create_tmp_reg (vectype, "vect_perm_even");
add_referenced_var (perm_dest);
perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, perm_dest,
@@ -4616,8 +4606,7 @@ vect_permute_load_chain (VEC(tree,heap) *dr_chain,
VEC_replace (tree, *result_chain, j/2, data_ref);
/* data_ref = permute_odd (first_data_ref, second_data_ref); */
- perm_dest = create_tmp_var (vectype, "vect_perm_odd");
- DECL_GIMPLE_REG_P (perm_dest) = 1;
+ perm_dest = create_tmp_reg (vectype, "vect_perm_odd");
add_referenced_var (perm_dest);
perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, perm_dest,