diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/ChangeLog.graphite | 17 | ||||
-rw-r--r-- | gcc/graphite-dependences.c | 10 | ||||
-rw-r--r-- | gcc/graphite-poly.c | 10 | ||||
-rw-r--r-- | gcc/graphite-poly.h | 35 | ||||
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 3 |
6 files changed, 60 insertions, 32 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 29213ee..dd74c02 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,22 @@ 2009-08-12 Sebastian Pop <sebastian.pop@amd.com> + * graphite-dependences.c (dependence_polyhedron_1): Replace + pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts. + Initialize PDR_NB_SUBSCRIPTS. + (print_pdr_access_layout): Replace pdr_nb_subscripts with + PDR_NB_SUBSCRIPTS. + * graphite-poly.h (struct poly_dr): Add nb_subscripts field. + (PDR_NB_SUBSCRIPTS): New. + (pdr_nb_subscripts): Removed. + (pdr_dim): Simplified. + * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts + with PDR_NB_SUBSCRIPTS. + +2009-08-12 Sebastian Pop <sebastian.pop@amd.com> + * graphite-interchange.c (compute_array_size): Remove use of PDR_DATA_CONTAINER. * graphite-poly.c (new_poly_dr): Remove argument data_container. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 55dc550..ceda6c4 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,22 @@ 2009-08-11 Sebastian Pop <sebastian.pop@amd.com> + * graphite-dependences.c (dependence_polyhedron_1): Replace + pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts. + Initialize PDR_NB_SUBSCRIPTS. + (print_pdr_access_layout): Replace pdr_nb_subscripts with + PDR_NB_SUBSCRIPTS. + * graphite-poly.h (struct poly_dr): Add nb_subscripts field. + (PDR_NB_SUBSCRIPTS): New. + (pdr_nb_subscripts): Removed. + (pdr_dim): Simplified. + * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts + with PDR_NB_SUBSCRIPTS. + +2009-08-11 Sebastian Pop <sebastian.pop@amd.com> + * graphite-interchange.c (compute_array_size): Remove use of PDR_DATA_CONTAINER. * graphite-poly.c (new_poly_dr): Remove argument data_container. diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c index 1c29b18..59e2a0d 100644 --- a/gcc/graphite-dependences.c +++ b/gcc/graphite-dependences.c @@ -380,7 +380,7 @@ dependence_polyhedron_1 (poly_bb_p pbb1, poly_bb_p pbb2, pbb_nb_scattering_orig (pbb2) : pbb_nb_scattering_transform (pbb2); graphite_dim_t ddim1 = pbb_dim_iter_domain (pbb1); graphite_dim_t ddim2 = pbb_dim_iter_domain (pbb2); - graphite_dim_t sdim1 = pdr_nb_subscripts (pdr1) + 1; + graphite_dim_t sdim1 = PDR_NB_SUBSCRIPTS (pdr1) + 1; graphite_dim_t gdim = scop_nb_params (scop); graphite_dim_t dim1 = pdr_dim (pdr1); graphite_dim_t dim2 = pdr_dim (pdr2); @@ -492,8 +492,8 @@ graphite_legal_transform_dr (poly_bb_p pbb1, poly_bb_p pbb2, ppl_Polyhedron_t so2 = PBB_ORIGINAL_SCATTERING (pbb2); ppl_Pointset_Powerset_C_Polyhedron_t po; - graphite_dim_t sdim1 = pdr_nb_subscripts (pdr1) + 1; - graphite_dim_t sdim2 = pdr_nb_subscripts (pdr2) + 1; + graphite_dim_t sdim1 = PDR_NB_SUBSCRIPTS (pdr1) + 1; + graphite_dim_t sdim2 = PDR_NB_SUBSCRIPTS (pdr2) + 1; if (sdim1 != sdim2) return true; @@ -661,8 +661,8 @@ graphite_carried_dependence_level_k (poly_dr_p pdr1, poly_dr_p pdr2, ppl_Polyhedron_t so2 = PBB_TRANSFORMED_SCATTERING (pbb2); ppl_Pointset_Powerset_C_Polyhedron_t po; ppl_Pointset_Powerset_C_Polyhedron_t eqpp; - graphite_dim_t sdim1 = pdr_nb_subscripts (pdr1) + 1; - graphite_dim_t sdim2 = pdr_nb_subscripts (pdr2) + 1; + graphite_dim_t sdim1 = PDR_NB_SUBSCRIPTS (pdr1) + 1; + graphite_dim_t sdim2 = PDR_NB_SUBSCRIPTS (pdr2) + 1; graphite_dim_t tdim1 = pbb_nb_scattering_transform (pbb1); graphite_dim_t ddim1 = pbb_dim_iter_domain (pbb1); ppl_dimension_type dim; diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c index b7c53e1..944c4bf 100644 --- a/gcc/graphite-poly.c +++ b/gcc/graphite-poly.c @@ -263,13 +263,14 @@ apply_poly_transforms (scop_p scop) return transform_done; } -/* Create a new polyhedral data reference and add it to PBB. It is defined by - its ACCESSES, its TYPE*/ +/* Create a new polyhedral data reference and add it to PBB. It is + defined by its ACCESSES, its TYPE, and the number of subscripts + NB_SUBSCRIPTS. */ void new_poly_dr (poly_bb_p pbb, ppl_Pointset_Powerset_C_Polyhedron_t accesses, - enum POLY_DR_TYPE type, void *cdr) + enum POLY_DR_TYPE type, void *cdr, int nb_subscripts) { poly_dr_p pdr = XNEW (struct poly_dr); @@ -277,6 +278,7 @@ new_poly_dr (poly_bb_p pbb, PDR_ACCESSES (pdr) = accesses; PDR_TYPE (pdr) = type; PDR_CDR (pdr) = cdr; + PDR_NB_SUBSCRIPTS (pdr) = nb_subscripts; VEC_safe_push (poly_dr_p, heap, PBB_DRS (pbb), pdr); } @@ -348,7 +350,7 @@ print_pdr_access_layout (FILE *file, poly_dr_p pdr) fprintf (file, " alias"); - for (i = 0; i < pdr_nb_subscripts (pdr); i++) + for (i = 0; i < PDR_NB_SUBSCRIPTS (pdr); i++) fprintf (file, " sub%d", (int) i); fprintf (file, " cst\n"); diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h index c6d902a..4459315 100644 --- a/gcc/graphite-poly.h +++ b/gcc/graphite-poly.h @@ -92,12 +92,12 @@ struct poly_dr | p = A; | ... = p[?][?]; | for j - | A[i][j+b] = m; + | A[i][j+k] = m; | } The data access A[i][j+k] in alias set "5" is described like this: - | i j k a s0 s1 1 + | i j k a s0 s1 1 | 0 0 0 1 0 0 -5 = 0 |-1 0 0 0 1 0 0 = 0 | 0 -1 -1 0 0 1 0 = 0 @@ -110,13 +110,13 @@ struct poly_dr polyhedron: - | i k a s0 1 + | i k a s0 1 | 0 0 1 0 -5 = 0 | 0 0 0 1 0 >= 0 "or" - | i k a s0 1 + | i k a s0 1 | 0 0 1 0 -7 = 0 | 0 0 0 1 0 >= 0 @@ -128,31 +128,33 @@ struct poly_dr | i j k a 1 | 0 0 0 -1 15 = 0 */ ppl_Pointset_Powerset_C_Polyhedron_t accesses; + + /* The number of subscripts. */ + graphite_dim_t nb_subscripts; }; #define PDR_CDR(PDR) (PDR->compiler_dr) #define PDR_PBB(PDR) (PDR->pbb) #define PDR_TYPE(PDR) (PDR->type) #define PDR_ACCESSES(PDR) (PDR->accesses) +#define PDR_NB_SUBSCRIPTS(PDR) (PDR->nb_subscripts) void new_poly_dr (poly_bb_p, ppl_Pointset_Powerset_C_Polyhedron_t, - enum POLY_DR_TYPE, void *); + enum POLY_DR_TYPE, void *, int); void free_poly_dr (poly_dr_p); void debug_pdr (poly_dr_p); void print_pdr (FILE *, poly_dr_p); static inline scop_p pdr_scop (poly_dr_p pdr); -/* The number of subscripts of the PDR. */ +/* The dimension of the PDR_ACCESSES polyhedron of PDR. */ -static inline graphite_dim_t -pdr_nb_subscripts (poly_dr_p pdr) +static inline ppl_dimension_type +pdr_dim (poly_dr_p pdr) { - poly_bb_p pbb = PDR_PBB (pdr); ppl_dimension_type dim; - ppl_Pointset_Powerset_C_Polyhedron_space_dimension (PDR_ACCESSES (pdr), &dim); - return dim - pbb_dim_iter_domain (pbb) - pbb_nb_params (pbb) - 1; + return dim; } /* The dimension of the iteration domain of the scop of PDR. */ @@ -171,17 +173,6 @@ pdr_nb_params (poly_dr_p pdr) return scop_nb_params (pdr_scop (pdr)); } -/* The dimension of the accesses polyhedron of PDR. */ - -static inline graphite_dim_t -pdr_dim (poly_dr_p pdr) -{ - graphite_dim_t alias_nb_dimensions = 1; - - return pbb_dim_iter_domain (PDR_PBB (pdr)) + alias_nb_dimensions - + pdr_nb_subscripts (pdr) + scop_nb_params (pdr_scop (pdr)); -} - /* The dimension of the alias set in PDR. */ static inline ppl_dimension_type diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index c6d82ee..f05a31d 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -1723,7 +1723,8 @@ build_poly_dr (data_reference_p dr, poly_bb_p pbb) ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&accesses_ps, accesses); ppl_delete_Polyhedron (accesses); - new_poly_dr (pbb, accesses_ps, DR_IS_READ (dr) ? PDR_READ : PDR_WRITE, dr); + new_poly_dr (pbb, accesses_ps, DR_IS_READ (dr) ? PDR_READ : PDR_WRITE, dr, + DR_NUM_DIMENSIONS (dr)); } /* Group each data reference in DRS with it's alias set num. */ |