On Tue, Oct 6, 2015 at 10:45 PM, Sebastian Pop <s....@samsung.com> wrote: > 2015-10-06 Aditya Kumar <aditya...@samsung.com> > Sebastian Pop <s....@samsung.com> > > * graphite-poly.c (free_data_refs_aux): Remove. > (free_gimple_poly_bb): Do not call free_data_refs_aux. > * graphite-poly.h (struct base_alias_pair): Remove. > * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all > uses of > base_alias_pair and dr->aux. > (build_alias_set): Same. > * tree-data-ref.c (create_data_ref): Initialize alias_set. > * tree-data-ref.h (data_reference): Add alias_set.
Err - this doesn't seem to be an "alias set" in the GCC sense as it doesn't use alias_set_type? I find that mildly confusing. Please use dr->aux to attach pass specific info rather than enlarging data-ref with this kind of random data. Thanks, Richard. > --- > gcc/graphite-poly.c | 18 ------------------ > gcc/graphite-poly.h | 6 ------ > gcc/graphite-sese-to-poly.c | 29 ++++------------------------- > gcc/tree-data-ref.c | 1 + > gcc/tree-data-ref.h | 3 +++ > 5 files changed, 8 insertions(+), 49 deletions(-) > > diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c > index 7de0e81..52d0765 100644 > --- a/gcc/graphite-poly.c > +++ b/gcc/graphite-poly.c > @@ -273,29 +273,11 @@ new_gimple_poly_bb (basic_block bb, > vec<data_reference_p> drs) > return gbb; > } > > -static void > -free_data_refs_aux (vec<data_reference_p> datarefs) > -{ > - unsigned int i; > - data_reference_p dr; > - > - FOR_EACH_VEC_ELT (datarefs, i, dr) > - if (dr->aux) > - { > - base_alias_pair_p bap = (base_alias_pair_p)(dr->aux); > - > - free (bap->alias_set); > - > - free (bap); > - dr->aux = NULL; > - } > -} > /* Frees GBB. */ > > void > free_gimple_poly_bb (gimple_poly_bb_p gbb) > { > - free_data_refs_aux (GBB_DATA_REFS (gbb)); > free_data_refs (GBB_DATA_REFS (gbb)); > > GBB_CONDITIONS (gbb).release (); > diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h > index 3c4353d..418af6e 100644 > --- a/gcc/graphite-poly.h > +++ b/gcc/graphite-poly.h > @@ -417,12 +417,6 @@ struct scop > #define SCOP_CONTEXT(S) (NULL) > #define POLY_SCOP_P(S) (S->poly_scop_p) > > -typedef struct base_alias_pair > -{ > - int base_obj_set; > - int *alias_set; > -} *base_alias_pair_p; > - > extern scop_p new_scop (edge, edge); > extern void free_scop (scop_p); > extern gimple_poly_bb_p new_gimple_poly_bb (basic_block, > vec<data_reference_p>); > diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c > index 235c911..40b598d 100644 > --- a/gcc/graphite-sese-to-poly.c > +++ b/gcc/graphite-sese-to-poly.c > @@ -932,16 +932,9 @@ build_scop_iteration_domain (scop_p scop) > static isl_map * > pdr_add_alias_set (isl_map *acc, data_reference_p dr) > { > - isl_constraint *c; > - int alias_set_num = 0; > - base_alias_pair *bap = (base_alias_pair *)(dr->aux); > - > - if (bap && bap->alias_set) > - alias_set_num = *(bap->alias_set); > - > - c = isl_equality_alloc > + isl_constraint *c = isl_equality_alloc > (isl_local_space_from_space (isl_map_get_space (acc))); > - c = isl_constraint_set_constant_si (c, -alias_set_num); > + c = isl_constraint_set_constant_si (c, -dr->alias_set); > c = isl_constraint_set_coefficient_si (c, isl_dim_out, 0, 1); > > return isl_map_add_constraint (acc, c); > @@ -1086,11 +1079,7 @@ build_poly_dr (data_reference_p dr, poly_bb_p pbb) > isl_id *id = isl_id_for_dr (scop, dr); > int nb = 1 + DR_NUM_DIMENSIONS (dr); > isl_space *space = isl_space_set_alloc (scop->isl_context, 0, nb); > - int alias_set_num = 0; > - base_alias_pair *bap = (base_alias_pair *)(dr->aux); > - > - if (bap && bap->alias_set) > - alias_set_num = *(bap->alias_set); > + int alias_set_num = dr->alias_set; > > space = isl_space_set_tuple_id (space, isl_dim_set, id); > subscript_sizes = isl_set_nat_universe (space); > @@ -1130,18 +1119,8 @@ build_alias_set (vec<data_reference_p> drs) > graphds_dfs (g, all_vertices, num_vertices, NULL, true, NULL); > free (all_vertices); > > - data_reference_p dr; > - FOR_EACH_VEC_ELT (drs, i, dr) > - dr->aux = XNEW (base_alias_pair); > - > for (i = 0; i < g->n_vertices; i++) > - { > - data_reference_p dr = drs[i]; > - base_alias_pair *bap = (base_alias_pair *)(dr->aux); > - bap->alias_set = XNEW (int); > - int c = g->vertices[i].component + 1; > - *(bap->alias_set) = c; > - } > + drs[i]->alias_set = g->vertices[i].component + 1; > > free_graph (g); > } > diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c > index e7087d7..0ffa1db 100644 > --- a/gcc/tree-data-ref.c > +++ b/gcc/tree-data-ref.c > @@ -1080,6 +1080,7 @@ create_data_ref (loop_p nest, loop_p loop, tree memref, > gimple *stmt, > DR_STMT (dr) = stmt; > DR_REF (dr) = memref; > DR_IS_READ (dr) = is_read; > + dr->alias_set = 0; > > dr_analyze_innermost (dr, nest); > dr_analyze_indices (dr, nest, loop); > diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h > index 4c9e357..e6f82ff 100644 > --- a/gcc/tree-data-ref.h > +++ b/gcc/tree-data-ref.h > @@ -127,6 +127,9 @@ struct data_reference > > /* Alias information for the data reference. */ > struct dr_alias alias; > + > + /* The alias set for this data reference. */ > + int alias_set; > }; > > #define DR_STMT(DR) (DR)->stmt > -- > 1.9.1 >