OSDN Git Service

Add PDR->nb_subscripts.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Aug 2009 14:27:33 +0000 (14:27 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Aug 2009 14:27:33 +0000 (14:27 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150690 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/graphite-dependences.c
gcc/graphite-poly.c
gcc/graphite-poly.h
gcc/graphite-sese-to-poly.c

index 29213ee..dd74c02 100644 (file)
@@ -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.
index 55dc550..ceda6c4 100644 (file)
@@ -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.
index 1c29b18..59e2a0d 100644 (file)
@@ -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;
index b7c53e1..944c4bf 100644 (file)
@@ -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");
index c6d902a..4459315 100644 (file)
@@ -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
index c6d82ee..f05a31d 100644 (file)
@@ -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.  */