Commit e14c1050 by Ira Rosen Committed by Ira Rosen

tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new names for…

tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new names for group elements access.


        * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
        names for group elements access.
        * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
        reduction chains as well.  Remove data reference and interleaving
        related words from the fields names.
        * tree-vect-loop.c (vect_transform_loop): Use new names for group
        elements access.
        * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
        vect_update_interleaving_chain, vect_same_range_drs,
        vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
        vect_verify_datarefs_alignment, vector_alignment_reachable_p,
        vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
        vect_analyze_group_access, vect_analyze_data_ref_access,
        vect_create_data_ref_ptr, vect_transform_strided_load,
        vect_record_strided_load_vectors): Likewise.
        * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
        vect_model_load_cost, vectorizable_store, vectorizable_load,
        vect_remove_stores, new_stmt_vec_info): Likewise.
        * tree-vect-slp.c (vect_build_slp_tree, 
        vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.

From-SVN: r173855
parent 51c213f7
2011-05-18 Ira Rosen <ira.rosen@linaro.org>
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
names for group elements access.
* tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
reduction chains as well. Remove data reference and interleaving
related words from the fields names.
* tree-vect-loop.c (vect_transform_loop): Use new names for group
elements access.
* tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
vect_update_interleaving_chain, vect_same_range_drs,
vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
vect_verify_datarefs_alignment, vector_alignment_reachable_p,
vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
vect_analyze_group_access, vect_analyze_data_ref_access,
vect_create_data_ref_ptr, vect_transform_strided_load,
vect_record_strided_load_vectors): Likewise.
* tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
vect_model_load_cost, vectorizable_store, vectorizable_load,
vect_remove_stores, new_stmt_vec_info): Likewise.
* tree-vect-slp.c (vect_build_slp_tree,
vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
2011-05-18 Richard Guenther <rguenther@suse.de> 2011-05-18 Richard Guenther <rguenther@suse.de>
PR middle-end/48989 PR middle-end/48989
......
...@@ -2437,7 +2437,7 @@ vect_create_cond_for_alias_checks (loop_vec_info loop_vinfo, ...@@ -2437,7 +2437,7 @@ vect_create_cond_for_alias_checks (loop_vec_info loop_vinfo,
dr_a = DDR_A (ddr); dr_a = DDR_A (ddr);
stmt_a = DR_STMT (DDR_A (ddr)); stmt_a = DR_STMT (DDR_A (ddr));
dr_group_first_a = DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt_a)); dr_group_first_a = GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt_a));
if (dr_group_first_a) if (dr_group_first_a)
{ {
stmt_a = dr_group_first_a; stmt_a = dr_group_first_a;
...@@ -2446,7 +2446,7 @@ vect_create_cond_for_alias_checks (loop_vec_info loop_vinfo, ...@@ -2446,7 +2446,7 @@ vect_create_cond_for_alias_checks (loop_vec_info loop_vinfo,
dr_b = DDR_B (ddr); dr_b = DDR_B (ddr);
stmt_b = DR_STMT (DDR_B (ddr)); stmt_b = DR_STMT (DDR_B (ddr));
dr_group_first_b = DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt_b)); dr_group_first_b = GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt_b));
if (dr_group_first_b) if (dr_group_first_b)
{ {
stmt_b = dr_group_first_b; stmt_b = dr_group_first_b;
......
...@@ -4924,7 +4924,7 @@ vect_transform_loop (loop_vec_info loop_vinfo) ...@@ -4924,7 +4924,7 @@ vect_transform_loop (loop_vec_info loop_vinfo)
/* Interleaving. If IS_STORE is TRUE, the vectorization of the /* Interleaving. If IS_STORE is TRUE, the vectorization of the
interleaving chain was completed - free all the stores in interleaving chain was completed - free all the stores in
the chain. */ the chain. */
vect_remove_stores (DR_GROUP_FIRST_DR (stmt_info)); vect_remove_stores (GROUP_FIRST_ELEMENT (stmt_info));
gsi_remove (&si, true); gsi_remove (&si, true);
continue; continue;
} }
......
...@@ -509,10 +509,10 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, ...@@ -509,10 +509,10 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
{ {
/* Load. */ /* Load. */
/* FORNOW: Check that there is no gap between the loads. */ /* FORNOW: Check that there is no gap between the loads. */
if ((DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt)) == stmt if ((GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) == stmt
&& DR_GROUP_GAP (vinfo_for_stmt (stmt)) != 0) && GROUP_GAP (vinfo_for_stmt (stmt)) != 0)
|| (DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt)) != stmt || (GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) != stmt
&& DR_GROUP_GAP (vinfo_for_stmt (stmt)) != 1)) && GROUP_GAP (vinfo_for_stmt (stmt)) != 1))
{ {
if (vect_print_dump_info (REPORT_SLP)) if (vect_print_dump_info (REPORT_SLP))
{ {
...@@ -526,7 +526,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, ...@@ -526,7 +526,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
/* Check that the size of interleaved loads group is not /* Check that the size of interleaved loads group is not
greater than the SLP group size. */ greater than the SLP group size. */
if (DR_GROUP_SIZE (vinfo_for_stmt (stmt)) > ncopies * group_size) if (GROUP_SIZE (vinfo_for_stmt (stmt)) > ncopies * group_size)
{ {
if (vect_print_dump_info (REPORT_SLP)) if (vect_print_dump_info (REPORT_SLP))
{ {
...@@ -539,7 +539,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, ...@@ -539,7 +539,7 @@ vect_build_slp_tree (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
return false; return false;
} }
first_load = DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt)); first_load = GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt));
if (prev_first_load) if (prev_first_load)
{ {
/* Check that there are no loads from different interleaving /* Check that there are no loads from different interleaving
...@@ -784,7 +784,7 @@ vect_supported_slp_permutation_p (slp_instance instance) ...@@ -784,7 +784,7 @@ vect_supported_slp_permutation_p (slp_instance instance)
{ {
slp_tree node = VEC_index (slp_tree, SLP_INSTANCE_LOADS (instance), 0); slp_tree node = VEC_index (slp_tree, SLP_INSTANCE_LOADS (instance), 0);
gimple stmt = VEC_index (gimple, SLP_TREE_SCALAR_STMTS (node), 0); gimple stmt = VEC_index (gimple, SLP_TREE_SCALAR_STMTS (node), 0);
gimple first_load = DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt)); gimple first_load = GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt));
VEC (slp_tree, heap) *sorted_loads = NULL; VEC (slp_tree, heap) *sorted_loads = NULL;
int index; int index;
slp_tree *tmp_loads = NULL; slp_tree *tmp_loads = NULL;
...@@ -803,7 +803,7 @@ vect_supported_slp_permutation_p (slp_instance instance) ...@@ -803,7 +803,7 @@ vect_supported_slp_permutation_p (slp_instance instance)
{ {
gimple scalar_stmt = VEC_index (gimple, SLP_TREE_SCALAR_STMTS (load), 0); gimple scalar_stmt = VEC_index (gimple, SLP_TREE_SCALAR_STMTS (load), 0);
/* Check that the loads are all in the same interleaving chain. */ /* Check that the loads are all in the same interleaving chain. */
if (DR_GROUP_FIRST_DR (vinfo_for_stmt (scalar_stmt)) != first_load) if (GROUP_FIRST_ELEMENT (vinfo_for_stmt (scalar_stmt)) != first_load)
{ {
if (vect_print_dump_info (REPORT_DETAILS)) if (vect_print_dump_info (REPORT_DETAILS))
{ {
...@@ -933,7 +933,7 @@ vect_supported_load_permutation_p (slp_instance slp_instn, int group_size, ...@@ -933,7 +933,7 @@ vect_supported_load_permutation_p (slp_instance slp_instn, int group_size,
first = stmt; first = stmt;
else else
{ {
if (DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt)) != first) if (GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt)) != first)
{ {
if (complex_numbers != 2) if (complex_numbers != 2)
return false; return false;
...@@ -948,7 +948,7 @@ vect_supported_load_permutation_p (slp_instance slp_instn, int group_size, ...@@ -948,7 +948,7 @@ vect_supported_load_permutation_p (slp_instance slp_instn, int group_size,
other_node_first = VEC_index (gimple, other_node_first = VEC_index (gimple,
SLP_TREE_SCALAR_STMTS (other_complex_node), 0); SLP_TREE_SCALAR_STMTS (other_complex_node), 0);
if (DR_GROUP_FIRST_DR (vinfo_for_stmt (stmt)) if (GROUP_FIRST_ELEMENT (vinfo_for_stmt (stmt))
!= other_node_first) != other_node_first)
return false; return false;
} }
...@@ -1142,7 +1142,7 @@ vect_analyze_slp_instance (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, ...@@ -1142,7 +1142,7 @@ vect_analyze_slp_instance (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
{ {
slp_instance new_instance; slp_instance new_instance;
slp_tree node = XNEW (struct _slp_tree); slp_tree node = XNEW (struct _slp_tree);
unsigned int group_size = DR_GROUP_SIZE (vinfo_for_stmt (stmt)); unsigned int group_size = GROUP_SIZE (vinfo_for_stmt (stmt));
unsigned int unrolling_factor = 1, nunits; unsigned int unrolling_factor = 1, nunits;
tree vectype, scalar_type = NULL_TREE; tree vectype, scalar_type = NULL_TREE;
gimple next; gimple next;
...@@ -1157,7 +1157,7 @@ vect_analyze_slp_instance (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, ...@@ -1157,7 +1157,7 @@ vect_analyze_slp_instance (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
{ {
scalar_type = TREE_TYPE (DR_REF (dr)); scalar_type = TREE_TYPE (DR_REF (dr));
vectype = get_vectype_for_scalar_type (scalar_type); vectype = get_vectype_for_scalar_type (scalar_type);
group_size = DR_GROUP_SIZE (vinfo_for_stmt (stmt)); group_size = GROUP_SIZE (vinfo_for_stmt (stmt));
} }
else else
{ {
...@@ -1204,7 +1204,7 @@ vect_analyze_slp_instance (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo, ...@@ -1204,7 +1204,7 @@ vect_analyze_slp_instance (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo,
while (next) while (next)
{ {
VEC_safe_push (gimple, heap, SLP_TREE_SCALAR_STMTS (node), next); VEC_safe_push (gimple, heap, SLP_TREE_SCALAR_STMTS (node), next);
next = DR_GROUP_NEXT_DR (vinfo_for_stmt (next)); next = GROUP_NEXT_ELEMENT (vinfo_for_stmt (next));
} }
} }
else else
......
...@@ -708,10 +708,10 @@ vect_model_simple_cost (stmt_vec_info stmt_info, int ncopies, ...@@ -708,10 +708,10 @@ vect_model_simple_cost (stmt_vec_info stmt_info, int ncopies,
static int static int
vect_cost_strided_group_size (stmt_vec_info stmt_info) vect_cost_strided_group_size (stmt_vec_info stmt_info)
{ {
gimple first_stmt = DR_GROUP_FIRST_DR (stmt_info); gimple first_stmt = GROUP_FIRST_ELEMENT (stmt_info);
if (first_stmt == STMT_VINFO_STMT (stmt_info)) if (first_stmt == STMT_VINFO_STMT (stmt_info))
return DR_GROUP_SIZE (stmt_info); return GROUP_SIZE (stmt_info);
return 1; return 1;
} }
...@@ -740,7 +740,7 @@ vect_model_store_cost (stmt_vec_info stmt_info, int ncopies, ...@@ -740,7 +740,7 @@ vect_model_store_cost (stmt_vec_info stmt_info, int ncopies,
outside_cost = vect_get_stmt_cost (scalar_to_vec); outside_cost = vect_get_stmt_cost (scalar_to_vec);
/* Strided access? */ /* Strided access? */
if (DR_GROUP_FIRST_DR (stmt_info)) if (STMT_VINFO_STRIDED_ACCESS (stmt_info))
{ {
if (slp_node) if (slp_node)
{ {
...@@ -749,7 +749,7 @@ vect_model_store_cost (stmt_vec_info stmt_info, int ncopies, ...@@ -749,7 +749,7 @@ vect_model_store_cost (stmt_vec_info stmt_info, int ncopies,
} }
else else
{ {
first_stmt = DR_GROUP_FIRST_DR (stmt_info); first_stmt = GROUP_FIRST_ELEMENT (stmt_info);
group_size = vect_cost_strided_group_size (stmt_info); group_size = vect_cost_strided_group_size (stmt_info);
} }
...@@ -855,8 +855,8 @@ vect_model_load_cost (stmt_vec_info stmt_info, int ncopies, bool load_lanes_p, ...@@ -855,8 +855,8 @@ vect_model_load_cost (stmt_vec_info stmt_info, int ncopies, bool load_lanes_p,
return; return;
/* Strided accesses? */ /* Strided accesses? */
first_stmt = DR_GROUP_FIRST_DR (stmt_info); first_stmt = GROUP_FIRST_ELEMENT (stmt_info);
if (first_stmt && !slp_node) if (STMT_VINFO_STRIDED_ACCESS (stmt_info) && first_stmt && !slp_node)
{ {
group_size = vect_cost_strided_group_size (stmt_info); group_size = vect_cost_strided_group_size (stmt_info);
first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (first_stmt)); first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (first_stmt));
...@@ -885,7 +885,8 @@ vect_model_load_cost (stmt_vec_info stmt_info, int ncopies, bool load_lanes_p, ...@@ -885,7 +885,8 @@ vect_model_load_cost (stmt_vec_info stmt_info, int ncopies, bool load_lanes_p,
/* The loads themselves. */ /* The loads themselves. */
vect_get_load_cost (first_dr, ncopies, vect_get_load_cost (first_dr, ncopies,
((!DR_GROUP_FIRST_DR (stmt_info)) || group_size > 1 || slp_node), ((!STMT_VINFO_STRIDED_ACCESS (stmt_info)) || group_size > 1
|| slp_node),
&inside_cost, &outside_cost); &inside_cost, &outside_cost);
if (vect_print_dump_info (REPORT_COST)) if (vect_print_dump_info (REPORT_COST))
...@@ -3515,10 +3516,10 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -3515,10 +3516,10 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (STMT_VINFO_STRIDED_ACCESS (stmt_info)) if (STMT_VINFO_STRIDED_ACCESS (stmt_info))
{ {
strided_store = true; strided_store = true;
first_stmt = DR_GROUP_FIRST_DR (stmt_info); first_stmt = GROUP_FIRST_ELEMENT (stmt_info);
if (!slp && !PURE_SLP_STMT (stmt_info)) if (!slp && !PURE_SLP_STMT (stmt_info))
{ {
group_size = DR_GROUP_SIZE (vinfo_for_stmt (first_stmt)); group_size = GROUP_SIZE (vinfo_for_stmt (first_stmt));
if (vect_store_lanes_supported (vectype, group_size)) if (vect_store_lanes_supported (vectype, group_size))
store_lanes_p = true; store_lanes_p = true;
else if (!vect_strided_store_supported (vectype, group_size)) else if (!vect_strided_store_supported (vectype, group_size))
...@@ -3529,7 +3530,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -3529,7 +3530,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
{ {
/* STMT is the leader of the group. Check the operands of all the /* STMT is the leader of the group. Check the operands of all the
stmts of the group. */ stmts of the group. */
next_stmt = DR_GROUP_NEXT_DR (stmt_info); next_stmt = GROUP_NEXT_ELEMENT (stmt_info);
while (next_stmt) while (next_stmt)
{ {
gcc_assert (gimple_assign_single_p (next_stmt)); gcc_assert (gimple_assign_single_p (next_stmt));
...@@ -3541,7 +3542,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -3541,7 +3542,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
fprintf (vect_dump, "use not simple."); fprintf (vect_dump, "use not simple.");
return false; return false;
} }
next_stmt = DR_GROUP_NEXT_DR (vinfo_for_stmt (next_stmt)); next_stmt = GROUP_NEXT_ELEMENT (vinfo_for_stmt (next_stmt));
} }
} }
} }
...@@ -3558,17 +3559,17 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -3558,17 +3559,17 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (strided_store) if (strided_store)
{ {
first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (first_stmt)); first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (first_stmt));
group_size = DR_GROUP_SIZE (vinfo_for_stmt (first_stmt)); group_size = GROUP_SIZE (vinfo_for_stmt (first_stmt));
DR_GROUP_STORE_COUNT (vinfo_for_stmt (first_stmt))++; GROUP_STORE_COUNT (vinfo_for_stmt (first_stmt))++;
/* FORNOW */ /* FORNOW */
gcc_assert (!loop || !nested_in_vect_loop_p (loop, stmt)); gcc_assert (!loop || !nested_in_vect_loop_p (loop, stmt));
/* We vectorize all the stmts of the interleaving group when we /* We vectorize all the stmts of the interleaving group when we
reach the last stmt in the group. */ reach the last stmt in the group. */
if (DR_GROUP_STORE_COUNT (vinfo_for_stmt (first_stmt)) if (GROUP_STORE_COUNT (vinfo_for_stmt (first_stmt))
< DR_GROUP_SIZE (vinfo_for_stmt (first_stmt)) < GROUP_SIZE (vinfo_for_stmt (first_stmt))
&& !slp) && !slp)
{ {
*vec_stmt = NULL; *vec_stmt = NULL;
...@@ -3695,7 +3696,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -3695,7 +3696,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
NULL); NULL);
VEC_quick_push(tree, dr_chain, vec_oprnd); VEC_quick_push(tree, dr_chain, vec_oprnd);
VEC_quick_push(tree, oprnds, vec_oprnd); VEC_quick_push(tree, oprnds, vec_oprnd);
next_stmt = DR_GROUP_NEXT_DR (vinfo_for_stmt (next_stmt)); next_stmt = GROUP_NEXT_ELEMENT (vinfo_for_stmt (next_stmt));
} }
} }
...@@ -3808,7 +3809,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -3808,7 +3809,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (slp) if (slp)
continue; continue;
next_stmt = DR_GROUP_NEXT_DR (vinfo_for_stmt (next_stmt)); next_stmt = GROUP_NEXT_ELEMENT (vinfo_for_stmt (next_stmt));
if (!next_stmt) if (!next_stmt)
break; break;
} }
...@@ -4052,10 +4053,10 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -4052,10 +4053,10 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
/* FORNOW */ /* FORNOW */
gcc_assert (! nested_in_vect_loop); gcc_assert (! nested_in_vect_loop);
first_stmt = DR_GROUP_FIRST_DR (stmt_info); first_stmt = GROUP_FIRST_ELEMENT (stmt_info);
if (!slp && !PURE_SLP_STMT (stmt_info)) if (!slp && !PURE_SLP_STMT (stmt_info))
{ {
group_size = DR_GROUP_SIZE (vinfo_for_stmt (first_stmt)); group_size = GROUP_SIZE (vinfo_for_stmt (first_stmt));
if (vect_load_lanes_supported (vectype, group_size)) if (vect_load_lanes_supported (vectype, group_size))
load_lanes_p = true; load_lanes_p = true;
else if (!vect_strided_load_supported (vectype, group_size)) else if (!vect_strided_load_supported (vectype, group_size))
...@@ -4096,7 +4097,7 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -4096,7 +4097,7 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (strided_load) if (strided_load)
{ {
first_stmt = DR_GROUP_FIRST_DR (stmt_info); first_stmt = GROUP_FIRST_ELEMENT (stmt_info);
/* Check if the chain of loads is already vectorized. */ /* Check if the chain of loads is already vectorized. */
if (STMT_VINFO_VEC_STMT (vinfo_for_stmt (first_stmt))) if (STMT_VINFO_VEC_STMT (vinfo_for_stmt (first_stmt)))
{ {
...@@ -4104,7 +4105,7 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -4104,7 +4105,7 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
return true; return true;
} }
first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (first_stmt)); first_dr = STMT_VINFO_DATA_REF (vinfo_for_stmt (first_stmt));
group_size = DR_GROUP_SIZE (vinfo_for_stmt (first_stmt)); group_size = GROUP_SIZE (vinfo_for_stmt (first_stmt));
/* VEC_NUM is the number of vect stmts to be created for this group. */ /* VEC_NUM is the number of vect stmts to be created for this group. */
if (slp) if (slp)
...@@ -5138,7 +5139,7 @@ vect_remove_stores (gimple first_stmt) ...@@ -5138,7 +5139,7 @@ vect_remove_stores (gimple first_stmt)
/* Free the attached stmt_vec_info and remove the stmt. */ /* Free the attached stmt_vec_info and remove the stmt. */
next_si = gsi_for_stmt (next); next_si = gsi_for_stmt (next);
gsi_remove (&next_si, true); gsi_remove (&next_si, true);
tmp = DR_GROUP_NEXT_DR (vinfo_for_stmt (next)); tmp = GROUP_NEXT_ELEMENT (vinfo_for_stmt (next));
free_stmt_vec_info (next); free_stmt_vec_info (next);
next = tmp; next = tmp;
} }
...@@ -5185,13 +5186,13 @@ new_stmt_vec_info (gimple stmt, loop_vec_info loop_vinfo, ...@@ -5185,13 +5186,13 @@ new_stmt_vec_info (gimple stmt, loop_vec_info loop_vinfo,
STMT_VINFO_INSIDE_OF_LOOP_COST (res) = 0; STMT_VINFO_INSIDE_OF_LOOP_COST (res) = 0;
STMT_VINFO_OUTSIDE_OF_LOOP_COST (res) = 0; STMT_VINFO_OUTSIDE_OF_LOOP_COST (res) = 0;
STMT_SLP_TYPE (res) = loop_vect; STMT_SLP_TYPE (res) = loop_vect;
DR_GROUP_FIRST_DR (res) = NULL; GROUP_FIRST_ELEMENT (res) = NULL;
DR_GROUP_NEXT_DR (res) = NULL; GROUP_NEXT_ELEMENT (res) = NULL;
DR_GROUP_SIZE (res) = 0; GROUP_SIZE (res) = 0;
DR_GROUP_STORE_COUNT (res) = 0; GROUP_STORE_COUNT (res) = 0;
DR_GROUP_GAP (res) = 0; GROUP_GAP (res) = 0;
DR_GROUP_SAME_DR_STMT (res) = NULL; GROUP_SAME_DR_STMT (res) = NULL;
DR_GROUP_READ_WRITE_DEPENDENCE (res) = false; GROUP_READ_WRITE_DEPENDENCE (res) = false;
return res; return res;
} }
......
...@@ -468,15 +468,15 @@ typedef struct _stmt_vec_info { ...@@ -468,15 +468,15 @@ typedef struct _stmt_vec_info {
/* Whether the stmt is SLPed, loop-based vectorized, or both. */ /* Whether the stmt is SLPed, loop-based vectorized, or both. */
enum slp_vect_type slp_type; enum slp_vect_type slp_type;
/* Interleaving info. */ /* Interleaving and reduction chains info. */
/* First data-ref in the interleaving group. */ /* First element in the group. */
gimple first_dr; gimple first_element;
/* Pointer to the next data-ref in the group. */ /* Pointer to the next element in the group. */
gimple next_dr; gimple next_element;
/* In case that two or more stmts share data-ref, this is the pointer to the /* For data-refs, in case that two or more stmts share data-ref, this is the
previously detected stmt with the same dr. */ pointer to the previously detected stmt with the same dr. */
gimple same_dr_stmt; gimple same_dr_stmt;
/* The size of the interleaving group. */ /* The size of the group. */
unsigned int size; unsigned int size;
/* For stores, number of stores from this group seen. We vectorize the last /* For stores, number of stores from this group seen. We vectorize the last
one. */ one. */
...@@ -527,22 +527,22 @@ typedef struct _stmt_vec_info { ...@@ -527,22 +527,22 @@ typedef struct _stmt_vec_info {
#define STMT_VINFO_RELATED_STMT(S) (S)->related_stmt #define STMT_VINFO_RELATED_STMT(S) (S)->related_stmt
#define STMT_VINFO_SAME_ALIGN_REFS(S) (S)->same_align_refs #define STMT_VINFO_SAME_ALIGN_REFS(S) (S)->same_align_refs
#define STMT_VINFO_DEF_TYPE(S) (S)->def_type #define STMT_VINFO_DEF_TYPE(S) (S)->def_type
#define STMT_VINFO_DR_GROUP_FIRST_DR(S) (S)->first_dr #define STMT_VINFO_GROUP_FIRST_ELEMENT(S) (S)->first_element
#define STMT_VINFO_DR_GROUP_NEXT_DR(S) (S)->next_dr #define STMT_VINFO_GROUP_NEXT_ELEMENT(S) (S)->next_element
#define STMT_VINFO_DR_GROUP_SIZE(S) (S)->size #define STMT_VINFO_GROUP_SIZE(S) (S)->size
#define STMT_VINFO_DR_GROUP_STORE_COUNT(S) (S)->store_count #define STMT_VINFO_GROUP_STORE_COUNT(S) (S)->store_count
#define STMT_VINFO_DR_GROUP_GAP(S) (S)->gap #define STMT_VINFO_GROUP_GAP(S) (S)->gap
#define STMT_VINFO_DR_GROUP_SAME_DR_STMT(S)(S)->same_dr_stmt #define STMT_VINFO_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
#define STMT_VINFO_DR_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep #define STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep
#define STMT_VINFO_STRIDED_ACCESS(S) ((S)->first_dr != NULL) #define STMT_VINFO_STRIDED_ACCESS(S) ((S)->first_element != NULL && (S)->data_ref_info)
#define DR_GROUP_FIRST_DR(S) (S)->first_dr #define GROUP_FIRST_ELEMENT(S) (S)->first_element
#define DR_GROUP_NEXT_DR(S) (S)->next_dr #define GROUP_NEXT_ELEMENT(S) (S)->next_element
#define DR_GROUP_SIZE(S) (S)->size #define GROUP_SIZE(S) (S)->size
#define DR_GROUP_STORE_COUNT(S) (S)->store_count #define GROUP_STORE_COUNT(S) (S)->store_count
#define DR_GROUP_GAP(S) (S)->gap #define GROUP_GAP(S) (S)->gap
#define DR_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt #define GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt
#define DR_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep #define GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep
#define STMT_VINFO_RELEVANT_P(S) ((S)->relevant != vect_unused_in_scope) #define STMT_VINFO_RELEVANT_P(S) ((S)->relevant != vect_unused_in_scope)
#define STMT_VINFO_OUTSIDE_OF_LOOP_COST(S) (S)->cost.outside_of_loop #define STMT_VINFO_OUTSIDE_OF_LOOP_COST(S) (S)->cost.outside_of_loop
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment