OSDN Git Service

2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Aug 2009 20:37:56 +0000 (20:37 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Aug 2009 20:37:56 +0000 (20:37 +0000)
* graphite-dependences.c (pddr_original_scattering): Return NULL
for read-read dependence relations.
* graphite-poly.h (enum poly_dr_type): Fix comment.
(pdr_read_p): New.
(pdr_write_p): New.
(pdr_may_write_p): New.

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

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

index 0a78def..ce730ca 100644 (file)
@@ -1,5 +1,14 @@
 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
 
+       * graphite-dependences.c (pddr_original_scattering): Return NULL
+       for read-read dependence relations.
+       * graphite-poly.h (enum poly_dr_type): Fix comment.
+       (pdr_read_p): New.
+       (pdr_write_p): New.
+       (pdr_may_write_p): New.
+
+2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
+
        * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
        (struct poly_dr): Same.
        (new_poly_dr): Same.
index d3dfbfc..35a11ca 100644 (file)
@@ -1,5 +1,14 @@
 2009-08-25  Sebastian Pop  <sebastian.pop@amd.com>
 
+       * graphite-dependences.c (pddr_original_scattering): Return NULL
+       for read-read dependence relations.
+       * graphite-poly.h (enum poly_dr_type): Fix comment.
+       (pdr_read_p): New.
+       (pdr_write_p): New.
+       (pdr_may_write_p): New.
+
+2009-08-25  Sebastian Pop  <sebastian.pop@amd.com>
+
        * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
        (struct poly_dr): Same.
        (new_poly_dr): Same.
index 2a3c808..4dfe692 100644 (file)
@@ -507,7 +507,8 @@ pddr_original_scattering (poly_bb_p pbb1, poly_bb_p pbb2,
   ppl_Polyhedron_t so1 = PBB_ORIGINAL_SCATTERING (pbb1);
   ppl_Polyhedron_t so2 = PBB_ORIGINAL_SCATTERING (pbb2);
 
-  if (PDR_NB_SUBSCRIPTS (pdr1) != PDR_NB_SUBSCRIPTS (pdr2))
+  if (PDR_NB_SUBSCRIPTS (pdr1) != PDR_NB_SUBSCRIPTS (pdr2)
+      || (pdr_read_p (pdr1) && pdr_read_p (pdr2)))
     return NULL;
 
   pddr = dependence_polyhedron (pbb1, pbb2, d1, d2, pdr1, pdr2, so1, so2,
index 394394b..10831af 100644 (file)
@@ -45,8 +45,8 @@ static inline graphite_dim_t scop_nb_params (scop_p);
 enum poly_dr_type
 {
   PDR_READ,
-  /* PDR_MAY_READs are represented using PDR_READS. This does not limit the
-     expressiveness.  */
+  /* PDR_MAY_READs are represented using PDR_READS.  This does not
+     limit the expressiveness.  */
   PDR_WRITE,
   PDR_MAY_WRITE
 };
@@ -215,6 +215,30 @@ pdr_parameter_dim (poly_dr_p pdr, graphite_dim_t param)
   return pbb_dim_iter_domain (pbb) + param;
 }
 
+/* Returns true when PDR is a "read".  */
+
+static inline bool
+pdr_read_p (poly_dr_p pdr)
+{
+  return PDR_TYPE (pdr) == PDR_READ;
+}
+
+/* Returns true when PDR is a "write".  */
+
+static inline bool
+pdr_write_p (poly_dr_p pdr)
+{
+  return PDR_TYPE (pdr) == PDR_WRITE;
+}
+
+/* Returns true when PDR is a "may write".  */
+
+static inline bool
+pdr_may_write_p (poly_dr_p pdr)
+{
+  return PDR_TYPE (pdr) == PDR_MAY_WRITE;
+}
+
 typedef struct poly_scattering *poly_scattering_p;
 
 struct poly_scattering