aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphite-poly.h
diff options
context:
space:
mode:
authorLi Feng <nemokingdom@gmail.com>2009-11-25 04:48:51 +0000
committerSebastian Pop <sebastian.pop@amd.com>2009-11-25 04:48:51 +0000
commit6eab13fc3e987505a3ec27a1bb5075247d86ad86 (patch)
treec3a3e11e113cb3a461256142830a77efb4b05a37 /gcc/graphite-poly.h
parent2024125e564f8eac0fdebbfa76d7672e2a731449 (diff)
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: https://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.h17
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);