From: Sebastian Pop Date: Fri, 28 Aug 2009 20:37:56 +0000 (+0000) Subject: graphite-dependences.c (pddr_original_scattering): Return NULL for read-read dependen... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d8eeb07816d4f83e6722b15a4bcba857dd7b5b88;p=gcc.git graphite-dependences.c (pddr_original_scattering): Return NULL for read-read dependence relations. 2009-08-28 Sebastian Pop * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0a78def3163..ce730ca81d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2009-08-28 Sebastian Pop + + * 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 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index d3dfbfc6b1f..35a11ca427c 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,12 @@ +2009-08-25 Sebastian Pop + + * 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 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type. diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c index 2a3c8086895..4dfe6929952 100644 --- a/gcc/graphite-dependences.c +++ b/gcc/graphite-dependences.c @@ -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, diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h index 394394b58b9..10831afde8e 100644 --- a/gcc/graphite-poly.h +++ b/gcc/graphite-poly.h @@ -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