diff options
author | Richard Guenther <rguenther@suse.de> | 2012-07-17 15:12:05 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-07-17 15:12:05 +0000 |
commit | 65876d249e4992e87c5c6aa30a87dfac88752a60 (patch) | |
tree | 693869f5109ae80dc471c399197f39eba86528e4 /gcc/tree-vect-data-refs.c | |
parent | 7cb151c045c2ad9355d4dbfac0ec91a9c3c45eb7 (diff) | |
download | gcc-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.c | 25 |
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, |