OSDN Git Service

* gcc.dg/graphite/interchange-0.c: Fix dg-final directive.
[pf3gnuchains/gcc-fork.git] / gcc / graphite-dependences.h
index ccf0b97..f6f4fea 100644 (file)
@@ -24,27 +24,41 @@ along with GCC; see the file COPYING3.  If not see
 extern bool graphite_legal_transform (scop_p);
 extern bool dependency_between_pbbs_p (poly_bb_p, poly_bb_p, int);
 
-typedef struct poly_dr_pair *poly_dr_pair_p;
+enum poly_dependence_kind {
+  unknown_dependence,
+  no_dependence,
+  has_dependence
+};
 
-typedef struct poly_dr_pair
-{
-  /* Source polyhedral data reference of the dependence.  */
-  poly_dr_p source;
+/* Represents a Polyhedral Data Dependence Relation.  */
 
-  /* Sink data reference of the dependence.  */
-  poly_dr_p sink;
+typedef struct poly_ddr
+{
+  /* Source and sink data references of the dependence.  */
+  poly_dr_p source, sink;
 
-  /* Data dependence polyhedron descibing dependence
-     between SOURCE and SINK data references.  */
+  /* Data dependence polyhedron.  */
   ppl_Pointset_Powerset_C_Polyhedron_t ddp;
-}poly_dr_pair;
 
+  enum poly_dependence_kind kind;
+
+  /* True when the dependence relation is for the original scattering.  */
+  bool original_scattering_p;
+
+} *poly_ddr_p;
 
-#define PDRP_SOURCE(PDRP) (PDR->source)
-#define PDRP_SINK(PDRP) (PDR->sink)
-#define PDRP_DDP(PDRP) (PDR->ddp)
+#define PDDR_SOURCE(PDDR) (PDDR->source)
+#define PDDR_SINK(PDDR) (PDDR->sink)
+#define PDDR_DDP(PDDR) (PDDR->ddp)
+#define PDDR_KIND(PDDR) (PDDR->kind)
+#define PDDR_ORIGINAL_SCATTERING_P(PDDR) (PDDR->original_scattering_p)
 
-extern int eq_poly_dr_pair_p (const void *, const void *);
-extern hashval_t hash_poly_dr_pair_p (const void *);
+extern int eq_poly_ddr_p (const void *, const void *);
+extern hashval_t hash_poly_ddr_p (const void *);
+extern void free_poly_ddr (void *);
+extern void dot_deps (scop_p);
+extern void dot_deps_stmt (scop_p);
+extern void print_pddr (FILE *, poly_ddr_p);
+extern void debug_pddr (poly_ddr_p);
 
 #endif