diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-25 04:48:51 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-25 04:48:51 +0000 |
commit | ae11f03bac138ee5e7c74c96bf4b4ec91daa419a (patch) | |
tree | c3a3e11e113cb3a461256142830a77efb4b05a37 /gcc/graphite-poly.h | |
parent | e5d72697a63fb5fba97fa1f1027d765cc17a0711 (diff) | |
download | gcc-ae11f03bac138ee5e7c74c96bf4b4ec91daa419a.tar.gz |
2009-09-17 Li Feng <nemokingdom@gmail.com>
PR middle-end/41118
* graphite-dependences.c (poly_drs_may_alias_p): Adjust definition.
(pddr_original_scattering): Make sure 2 pdr2 in the same base object set.
(graphite_carried_dependence_level_k): Ditto.
* graphite-poly.c (new_poly_dr): Add init of PDR_BASE_OBJECT_SET.
* graphite-poly.h (struct poly_dr): Add member dr_base_object_set.
(new_poly_dr): Adjust declaration.
* graphite-sese-to-poly.c (free_data_refs_aux): New.
(free_gimple_bb): Added free_data_refs_aux.
(build_poly_dr): Add dr_base_object_set.
(partition_drs_to_sets): New.
(dr_same_base_object_p): New.
(build_alias_set_for_drs): New.
(build_base_object_set_for_drs): New.
(build_scop_drs): Add build_base_obj_set_for_drs.
* graphite-sese-to-poly.h: Added #define for alias set number index and
base object set index.
* libgomp/testsuite/libgomp.graphite/force-parallel-6.c: Refine tests.
* libgomp/testsuite/libgomp.graphite/pr4118.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154549 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-poly.h')
-rw-r--r-- | gcc/graphite-poly.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h index 7fe1113ad68..a96d5c20a8a 100644 --- a/gcc/graphite-poly.h +++ b/gcc/graphite-poly.h @@ -72,13 +72,13 @@ struct poly_dr The polyhedron contains these dimensions: - - The alias set (a): - Every memory access is classified in at least one alias set. + - The alias set (a): + Every memory access is classified in at least one alias set. - - The subscripts (s_0, ..., s_n): - The memory is accessed using zero or more subscript dimensions. + - The subscripts (s_0, ..., s_n): + The memory is accessed using zero or more subscript dimensions. - - The iteration domain (variables and parameters) + - The iteration domain (variables and parameters) Do not hardcode the dimensions. Use the following accessor functions: - pdr_alias_set_dim @@ -135,6 +135,10 @@ struct poly_dr | 0 0 0 -1 15 = 0 */ ppl_Pointset_Powerset_C_Polyhedron_t accesses; + /* Data reference's base object set number, we must assure 2 pdrs are in the + same base object set before dependency checking. */ + int dr_base_object_set; + /* The number of subscripts. */ graphite_dim_t nb_subscripts; }; @@ -145,9 +149,10 @@ struct poly_dr #define PDR_PBB(PDR) (PDR->pbb) #define PDR_TYPE(PDR) (PDR->type) #define PDR_ACCESSES(PDR) (PDR->accesses) +#define PDR_BASE_OBJECT_SET(PDR) (PDR->dr_base_object_set) #define PDR_NB_SUBSCRIPTS(PDR) (PDR->nb_subscripts) -void new_poly_dr (poly_bb_p, ppl_Pointset_Powerset_C_Polyhedron_t, +void new_poly_dr (poly_bb_p, int, ppl_Pointset_Powerset_C_Polyhedron_t, enum poly_dr_type, void *, graphite_dim_t); void free_poly_dr (poly_dr_p); void debug_pdr (poly_dr_p); |