X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fgraphite-dependences.h;h=f6f4fea95d25526237f68363e6e16bab24d86f14;hb=a3386e0b0393a4f6325fc30ce03470e83540d89a;hp=ccf0b971b2376133edfa0687be4b062a578d1c50;hpb=c6bb733dc15d307a9a8f4e2f93301661ae2bf6c1;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/graphite-dependences.h b/gcc/graphite-dependences.h index ccf0b971b23..f6f4fea95d2 100644 --- a/gcc/graphite-dependences.h +++ b/gcc/graphite-dependences.h @@ -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