This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 2/3] remove unused struct base_alias_pair
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Sebastian Pop <s dot pop at samsung dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Sebastian Pop <sebpop at gmail dot com>, aditya dot k7 at samsung dot com, Tobias Grosser <tobias at grosser dot es>
- Date: Wed, 7 Oct 2015 10:11:50 +0200
- Subject: Re: [PATCH 2/3] remove unused struct base_alias_pair
- Authentication-results: sourceware.org; auth=none
- References: <1444164306-22858-1-git-send-email-s dot pop at samsung dot com> <1444164306-22858-2-git-send-email-s dot pop at samsung dot com>
On Tue, Oct 6, 2015 at 10:45 PM, Sebastian Pop <s.pop@samsung.com> wrote:
> 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
> Sebastian Pop <s.pop@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
>