graphite-dependences.c (pddr_original_scattering): Return NULL for read-read dependen...
authorSebastian Pop <sebastian.pop@amd.com>
Fri, 28 Aug 2009 20:37:56 +0000 (20:37 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Fri, 28 Aug 2009 20:37:56 +0000 (20:37 +0000)
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.

From-SVN: r151189

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

index 0a78def3163cd3280450bdbe843eccfedec7ed99..ce730ca81d4f61fa1ea494d380ed2f961ed2f5d2 100644 (file)
@@ -1,3 +1,12 @@
+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.
index d3dfbfc6b1fbb877e473c365f1124658d154c140..35a11ca427c6ccd9ce67bba0afb562d655c0570f 100644 (file)
@@ -1,3 +1,12 @@
+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.
index 2a3c8086895e144c8e71cc24bb915142935a2c3a..4dfe6929952a4a87fcbaad98af5b85ac95fc0d1c 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 394394b58b902ec2f39745808f1069a6c88290ff..10831afde8eee50dfdce8b442cd10018febecc34 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