This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Graphite-Branch] Move from NNC_Polyhedron to C_Polyhedron.


As discussed in
http://groups.google.com/group/gcc-graphite/t/877b73d30c8bae2e, we do not
need non necessarily closed (NNC) polyhedron in Graphite. To improve
performance switch back to C_Polyhedron.

Converted everything with s/_NNC_/_C_/g and replaced every strict
inequality a < b or a > b with a + 1 <= b or a >= b + 1.

2009-07-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-dependences.c (map_into_dep_poly, map_dr_into_dep_poly,
	build_pairwise_constraint, dr_equality_constraints,
	build_pairwise_scheduling_equality,
	build_pairwise_scheduling_inequality, lexicographically_gt_p,
	build_lexicographically_gt_constraint, dependence_polyhedron,
	graphite_legal_transform_dr, graphite_carried_dependence_level_k):
	Move from NNC_Polyhedron to C_Polyhedron.
	* graphite-interchange.c (compute_array_size_poly,
	gather_access_strides): Dito.
	* graphite-poly.c (apply_poly_transforms, new_poly_dr, free_poly_bb,
	free_scop, pbb_number_of_iterations): Dito.
	* graphite-poly.h (struct poly_dr, pdr_nb_subscripts, struct poly_bb,
	pbb_dim_iter_domain, struct scop): Dito.
	* graphite-ppl.c (new_Constraint_System_from_Cloog_Matrix,
	new_Cloog_Domain_from_ppl_Polyhedron,
	new_Cloog_Domain_from_ppl_Pointset_Powerset, ppl_set_coef_gmp,
	ppl_insert_dimensions_pointset, ppl_insert_dimensions_pointset,
	ppl_strip_loop, ppl_strip_loop, ppl_print_polyhedron_matrix,
	ppl_print_powerset_matrix, debug_ppl_polyhedron_matrix,
	debug_ppl_powerset_matrix, ppl_read_polyhedron_matrix): Dito.
	* graphite-ppl.h (ppl_Pointset_Powerset_C_Polyhedron_t,
	new_C_Polyhedron_from_Cloog_Matrix, ppl_print_powerset_matrix,
	debug_ppl_powerset_matrix, ppl_insert_dimensions_pointset): Dito.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons,
	build_loop_iteration_domains, ppl_constraint_type_from_tree_code,
	add_condition_to_domain, add_condition_to_pbb, build_scop_context,
	build_scop_iteration_domain, build_poly_dr): Dito
---
 gcc/ChangeLog.graphite      |   30 ++++++++
 gcc/graphite-dependences.c  |  164 ++++++++++++++++++++++---------------------
 gcc/graphite-interchange.c  |   44 ++++++------
 gcc/graphite-poly.c         |   14 ++--
 gcc/graphite-poly.h         |   16 ++--
 gcc/graphite-ppl.c          |   64 ++++++++--------
 gcc/graphite-ppl.h          |   11 ++--
 gcc/graphite-sese-to-poly.c |   91 ++++++++++++++++--------
 8 files changed, 248 insertions(+), 186 deletions(-)

diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index c8727a3..9f38d93 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,3 +1,33 @@
+2009-07-10  Tobias Grosser  <grosser@fim.uni-passau.de>
+
+	* graphite-dependences.c (map_into_dep_poly, map_dr_into_dep_poly,
+	build_pairwise_constraint, dr_equality_constraints,
+	build_pairwise_scheduling_equality,
+	build_pairwise_scheduling_inequality, lexicographically_gt_p,
+	build_lexicographically_gt_constraint, dependence_polyhedron,
+	graphite_legal_transform_dr, graphite_carried_dependence_level_k):
+	Move from NNC_Polyhedron to C_Polyhedron.
+	* graphite-interchange.c (compute_array_size_poly,
+	gather_access_strides): Dito.
+	* graphite-poly.c (apply_poly_transforms, new_poly_dr, free_poly_bb,
+	free_scop, pbb_number_of_iterations): Dito.
+	* graphite-poly.h (struct poly_dr, pdr_nb_subscripts, struct poly_bb,
+	pbb_dim_iter_domain, struct scop): Dito.
+	* graphite-ppl.c (new_Constraint_System_from_Cloog_Matrix,
+	new_Cloog_Domain_from_ppl_Polyhedron,
+	new_Cloog_Domain_from_ppl_Pointset_Powerset, ppl_set_coef_gmp,
+	ppl_insert_dimensions_pointset, ppl_insert_dimensions_pointset,
+	ppl_strip_loop, ppl_strip_loop, ppl_print_polyhedron_matrix,
+	ppl_print_powerset_matrix, debug_ppl_polyhedron_matrix,
+	debug_ppl_powerset_matrix, ppl_read_polyhedron_matrix): Dito.
+	* graphite-ppl.h (ppl_Pointset_Powerset_C_Polyhedron_t,
+	new_C_Polyhedron_from_Cloog_Matrix, ppl_print_powerset_matrix,
+	debug_ppl_powerset_matrix, ppl_insert_dimensions_pointset): Dito.
+	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons,
+	build_loop_iteration_domains, ppl_constraint_type_from_tree_code,
+	add_condition_to_domain, add_condition_to_pbb, build_scop_context,
+	build_scop_iteration_domain, build_poly_dr): Dito
+
 2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>
 
 	* testsuite/gcc.dg/graphite/graphite.exp: Added a rule to execute
diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c
index 6dbbc19..753e016 100644
--- a/gcc/graphite-dependences.c
+++ b/gcc/graphite-dependences.c
@@ -55,15 +55,15 @@ along with GCC; see the file COPYING3.  If not see
    Maps the dimensions [0, ..., cut - 1] of polyhedron P to OFFSET0
    and the dimensions [cut, ..., nb_dim] to DIM - GDIM.  */
 
-static ppl_Pointset_Powerset_NNC_Polyhedron_t
+static ppl_Pointset_Powerset_C_Polyhedron_t
 map_into_dep_poly (graphite_dim_t dim, graphite_dim_t gdim,
-		   ppl_Pointset_Powerset_NNC_Polyhedron_t p,
+		   ppl_Pointset_Powerset_C_Polyhedron_t p,
 		   graphite_dim_t cut,
 		   graphite_dim_t offset)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_t res;
+  ppl_Pointset_Powerset_C_Polyhedron_t res;
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Pointset_Powerset_NNC_Polyhedron (&res, p);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (&res, p);
   ppl_insert_dimensions_pointset (res, 0, offset);
   ppl_insert_dimensions_pointset (res, offset + cut, dim - offset - cut - gdim);
 
@@ -78,19 +78,19 @@ map_into_dep_poly (graphite_dim_t dim, graphite_dim_t gdim,
    Add DIM - NB0 - NB1 - PDIM zeros between "c" and "b":  "00...0 a 00...0 c 00...0 b"
 */
 
-static ppl_Pointset_Powerset_NNC_Polyhedron_t
+static ppl_Pointset_Powerset_C_Polyhedron_t
 map_dr_into_dep_poly (graphite_dim_t dim,
-		      ppl_Pointset_Powerset_NNC_Polyhedron_t dr, 
+		      ppl_Pointset_Powerset_C_Polyhedron_t dr,
 		      graphite_dim_t cut0, graphite_dim_t cut1,
 		      graphite_dim_t nb0, graphite_dim_t nb1)
 {
   ppl_dimension_type pdim;
   ppl_dimension_type *map;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t res;
+  ppl_Pointset_Powerset_C_Polyhedron_t res;
   ppl_dimension_type i;
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Pointset_Powerset_NNC_Polyhedron (&res, dr);
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (res, &pdim);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (&res, dr);
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (res, &pdim);
 
   map = (ppl_dimension_type *) XNEWVEC (ppl_dimension_type, pdim);
 
@@ -104,7 +104,7 @@ map_dr_into_dep_poly (graphite_dim_t dim,
   for (i = cut1; i < pdim; i++)
     map[i] = cut0 + i - cut1;
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_map_space_dimensions (res, map, pdim);
+  ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (res, map, pdim);
   free (map);
 
   /* After swapping 's' and 'g' vectors, we have to update a new cut.  */
@@ -160,12 +160,12 @@ build_pairwise_constraint (graphite_dim_t dim,
 
 /* Builds subscript equality constraints.  */
 
-static ppl_Pointset_Powerset_NNC_Polyhedron_t
+static ppl_Pointset_Powerset_C_Polyhedron_t
 dr_equality_constraints (graphite_dim_t dim,
 		         graphite_dim_t pos, graphite_dim_t nb_subscripts)
 {
   ppl_Polyhedron_t subscript_equalities;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t res;
+  ppl_Pointset_Powerset_C_Polyhedron_t res;
   Value v, v_op;
   graphite_dim_t i;
 
@@ -174,7 +174,7 @@ dr_equality_constraints (graphite_dim_t dim,
   value_set_si (v, 1);
   value_set_si (v_op, -1);
 
-  ppl_new_NNC_Polyhedron_from_space_dimension (&subscript_equalities, dim, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&subscript_equalities, dim, 0);
   for (i = 0; i < nb_subscripts; i++)
     {
       ppl_Linear_Expression_t expr;
@@ -197,7 +197,7 @@ dr_equality_constraints (graphite_dim_t dim,
       ppl_delete_Coefficient (coef);
     }
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&res, subscript_equalities);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&res, subscript_equalities);
   value_clear (v);
   value_clear (v_op);
   ppl_delete_Polyhedron (subscript_equalities);
@@ -207,48 +207,50 @@ dr_equality_constraints (graphite_dim_t dim,
 
 /* Builds scheduling equality constraints.  */
 
-static ppl_Pointset_Powerset_NNC_Polyhedron_t
+static ppl_Pointset_Powerset_C_Polyhedron_t
 build_pairwise_scheduling_equality (graphite_dim_t dim,
 		                    graphite_dim_t pos, graphite_dim_t offset)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_t res;
+  ppl_Pointset_Powerset_C_Polyhedron_t res;
   ppl_Polyhedron_t equalities;
   ppl_Constraint_t cstr;
 
-  ppl_new_NNC_Polyhedron_from_space_dimension (&equalities, dim, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&equalities, dim, 0);
 
   cstr = build_pairwise_constraint (dim, pos, pos + offset, 0, PPL_CONSTRAINT_TYPE_EQUAL); 
   ppl_Polyhedron_add_constraint (equalities, cstr);
   ppl_delete_Constraint (cstr);
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&res, equalities);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&res, equalities);
   ppl_delete_Polyhedron (equalities);
   return res;
 }
 
 /* Builds scheduling inequality constraints.  */
 
-static ppl_Pointset_Powerset_NNC_Polyhedron_t
+static ppl_Pointset_Powerset_C_Polyhedron_t
 build_pairwise_scheduling_inequality (graphite_dim_t dim,
 				      graphite_dim_t pos,
 				      graphite_dim_t offset,
 				      bool direction)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_t res;
+  ppl_Pointset_Powerset_C_Polyhedron_t res;
   ppl_Polyhedron_t equalities;
   ppl_Constraint_t cstr;
 
-  ppl_new_NNC_Polyhedron_from_space_dimension (&equalities, dim, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&equalities, dim, 0);
 
   if (direction)
-    cstr = build_pairwise_constraint (dim, pos, pos + offset, 0, PPL_CONSTRAINT_TYPE_GREATER_THAN); 
+    cstr = build_pairwise_constraint (dim, pos, pos + offset, -1,
+				      PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL);
   else
-    cstr = build_pairwise_constraint (dim, pos, pos + offset, 0, PPL_CONSTRAINT_TYPE_LESS_THAN); 
+    cstr = build_pairwise_constraint (dim, pos, pos + offset, 1,
+				      PPL_CONSTRAINT_TYPE_LESS_OR_EQUAL);
 
   ppl_Polyhedron_add_constraint (equalities, cstr);
   ppl_delete_Constraint (cstr);
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&res, equalities);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&res, equalities);
   ppl_delete_Polyhedron (equalities);
   return res;
 }
@@ -257,21 +259,21 @@ build_pairwise_scheduling_inequality (graphite_dim_t dim,
    to the RES dependence polyhedron returns an empty polyhedron.  */
 
 static bool
-lexicographically_gt_p (ppl_Pointset_Powerset_NNC_Polyhedron_t res,
+lexicographically_gt_p (ppl_Pointset_Powerset_C_Polyhedron_t res,
 			graphite_dim_t dim,
 			graphite_dim_t offset,
 			bool direction, graphite_dim_t i)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_t ineq;
+  ppl_Pointset_Powerset_C_Polyhedron_t ineq;
   bool empty_p;
 
   ineq = build_pairwise_scheduling_inequality (dim, i, offset,
 					       direction);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (ineq, res);
-  empty_p = ppl_Pointset_Powerset_NNC_Polyhedron_is_empty (ineq);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (ineq, res);
+  empty_p = ppl_Pointset_Powerset_C_Polyhedron_is_empty (ineq);
   if (!empty_p)
-    ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, ineq);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (ineq);
+    ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, ineq);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (ineq);
 
   return !empty_p;
 }
@@ -280,7 +282,7 @@ lexicographically_gt_p (ppl_Pointset_Powerset_NNC_Polyhedron_t res,
    of time vectors RES following the lexicographical order.  */
 
 static void
-build_lexicographically_gt_constraint (ppl_Pointset_Powerset_NNC_Polyhedron_t res,
+build_lexicographically_gt_constraint (ppl_Pointset_Powerset_C_Polyhedron_t res,
 				       graphite_dim_t dim,
 				       graphite_dim_t tdim1, graphite_dim_t offset,
 				       bool direction)
@@ -292,11 +294,11 @@ build_lexicographically_gt_constraint (ppl_Pointset_Powerset_NNC_Polyhedron_t re
 
   for (i = 0; i < tdim1 - 1; i++)
     {
-      ppl_Pointset_Powerset_NNC_Polyhedron_t sceq;
+      ppl_Pointset_Powerset_C_Polyhedron_t sceq;
 
       sceq = build_pairwise_scheduling_equality (dim, i, offset);
-      ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, sceq);
-      ppl_delete_Pointset_Powerset_NNC_Polyhedron (sceq);
+      ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, sceq);
+      ppl_delete_Pointset_Powerset_C_Polyhedron (sceq);
 
       if (lexicographically_gt_p (res, dim, offset, direction, i + 1))
 	return;
@@ -304,18 +306,18 @@ build_lexicographically_gt_constraint (ppl_Pointset_Powerset_NNC_Polyhedron_t re
 
   if (i == tdim1 - 1)
     {
-      ppl_delete_Pointset_Powerset_NNC_Polyhedron (res);
-      ppl_new_Pointset_Powerset_NNC_Polyhedron_from_space_dimension (&res, dim, 1);
+      ppl_delete_Pointset_Powerset_C_Polyhedron (res);
+      ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (&res, dim, 1);
     }
 }
 
 /*  Build the dependence polyhedron for data references PDR1 and PDR2.  */
 
 
-static ppl_Pointset_Powerset_NNC_Polyhedron_t
+static ppl_Pointset_Powerset_C_Polyhedron_t
 dependence_polyhedron (poly_bb_p pbb1, poly_bb_p pbb2,
-		       ppl_Pointset_Powerset_NNC_Polyhedron_t d1,
-		       ppl_Pointset_Powerset_NNC_Polyhedron_t d2,
+		       ppl_Pointset_Powerset_C_Polyhedron_t d1,
+		       ppl_Pointset_Powerset_C_Polyhedron_t d2,
 		       poly_dr_p pdr1, poly_dr_p pdr2,
 	               ppl_Polyhedron_t s1, ppl_Polyhedron_t s2,
 		       bool direction,
@@ -333,13 +335,13 @@ dependence_polyhedron (poly_bb_p pbb1, poly_bb_p pbb2,
   graphite_dim_t dim1 = pdr_dim (pdr1);
   graphite_dim_t dim2 = pdr_dim (pdr2);
   graphite_dim_t dim = tdim1 + tdim2 + dim1 + dim2;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t res;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t id1, id2, isc1, isc2, idr1, idr2;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t sc1, sc2, dreq;
+  ppl_Pointset_Powerset_C_Polyhedron_t res;
+  ppl_Pointset_Powerset_C_Polyhedron_t id1, id2, isc1, isc2, idr1, idr2;
+  ppl_Pointset_Powerset_C_Polyhedron_t sc1, sc2, dreq;
   
   gcc_assert (PBB_SCOP (pbb1) == PBB_SCOP (pbb2));
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&sc1, s1);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&sc2, s2);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&sc1, s1);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&sc2, s2);
 
   id1 = map_into_dep_poly (dim, gdim, d1, ddim1, tdim1);
   id2 = map_into_dep_poly (dim, gdim, d2, ddim2, tdim1 + ddim1 + tdim2);
@@ -354,25 +356,25 @@ dependence_polyhedron (poly_bb_p pbb1, poly_bb_p pbb2,
   /* Now add the subscript equalities.  */
   dreq = dr_equality_constraints (dim, tdim1 + ddim1 + tdim2 + ddim2, sdim1); 
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_space_dimension (&res, dim, 0);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, id1);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, id2);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, isc1);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, isc2);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, idr1);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, idr2);
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (res, dreq);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (id1);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (id2);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (sc1);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (sc2);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (isc1);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (isc2);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (idr1);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (idr2);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (dreq);
-
-  if (!ppl_Pointset_Powerset_NNC_Polyhedron_is_empty (res))
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (&res, dim, 0);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, id1);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, id2);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, isc1);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, isc2);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, idr1);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, idr2);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (res, dreq);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (id1);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (id2);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (sc1);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (sc2);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (isc1);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (isc2);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (idr1);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (idr2);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (dreq);
+
+  if (!ppl_Pointset_Powerset_C_Polyhedron_is_empty (res))
     build_lexicographically_gt_constraint (res, dim, MIN (tdim1, tdim2),
 					   tdim1 + ddim1, direction);
 
@@ -387,11 +389,11 @@ static bool
 graphite_legal_transform_dr (poly_bb_p pbb1, poly_bb_p pbb2,
 			     poly_dr_p pdr1, poly_dr_p pdr2)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_t d1 = PBB_DOMAIN (pbb1);
-  ppl_Pointset_Powerset_NNC_Polyhedron_t d2 = PBB_DOMAIN (pbb2);
+  ppl_Pointset_Powerset_C_Polyhedron_t d1 = PBB_DOMAIN (pbb1);
+  ppl_Pointset_Powerset_C_Polyhedron_t d2 = PBB_DOMAIN (pbb2);
   ppl_Polyhedron_t so1 = PBB_ORIGINAL_SCATTERING (pbb1);
   ppl_Polyhedron_t so2 = PBB_ORIGINAL_SCATTERING (pbb2);
-  ppl_Pointset_Powerset_NNC_Polyhedron_t po;
+  ppl_Pointset_Powerset_C_Polyhedron_t po;
 
   graphite_dim_t sdim1 = pdr_nb_subscripts (pdr1) + 1;
   graphite_dim_t sdim2 = pdr_nb_subscripts (pdr2) + 1;
@@ -401,13 +403,13 @@ graphite_legal_transform_dr (poly_bb_p pbb1, poly_bb_p pbb2,
 
   po = dependence_polyhedron (pbb1, pbb2, d1, d2, pdr1, pdr2, so1, so2, true, true);
 
-  if (ppl_Pointset_Powerset_NNC_Polyhedron_is_empty (po))
+  if (ppl_Pointset_Powerset_C_Polyhedron_is_empty (po))
     return true;
   else
     {
       ppl_Polyhedron_t st1 = PBB_TRANSFORMED_SCATTERING (pbb1);
       ppl_Polyhedron_t st2 = PBB_TRANSFORMED_SCATTERING (pbb2);
-      ppl_Pointset_Powerset_NNC_Polyhedron_t pt;
+      ppl_Pointset_Powerset_C_Polyhedron_t pt;
       graphite_dim_t ddim1 = pbb_dim_iter_domain (pbb1);
       graphite_dim_t otdim1 = pbb_nb_scattering_orig (pbb1);
       graphite_dim_t otdim2 = pbb_nb_scattering_orig (pbb2);
@@ -422,8 +424,8 @@ graphite_legal_transform_dr (poly_bb_p pbb1, poly_bb_p pbb2,
       ppl_insert_dimensions_pointset (pt, 0, otdim1);
       ppl_insert_dimensions_pointset (pt, otdim1 + ttdim1 + ddim1, otdim2);
 
-      ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (po, pt);
-      return ppl_Pointset_Powerset_NNC_Polyhedron_is_empty (po);
+      ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (po, pt);
+      return ppl_Pointset_Powerset_C_Polyhedron_is_empty (po);
     }
 }
 
@@ -470,12 +472,12 @@ graphite_carried_dependence_level_k (poly_dr_p pdr1, poly_dr_p pdr2,
 {
   poly_bb_p pbb1 = PDR_PBB (pdr1);
   poly_bb_p pbb2 = PDR_PBB (pdr2);
-  ppl_Pointset_Powerset_NNC_Polyhedron_t d1 = PBB_DOMAIN (pbb1);
-  ppl_Pointset_Powerset_NNC_Polyhedron_t d2 = PBB_DOMAIN (pbb2);
+  ppl_Pointset_Powerset_C_Polyhedron_t d1 = PBB_DOMAIN (pbb1);
+  ppl_Pointset_Powerset_C_Polyhedron_t d2 = PBB_DOMAIN (pbb2);
   ppl_Polyhedron_t so1 = PBB_TRANSFORMED_SCATTERING (pbb1);
   ppl_Polyhedron_t so2 = PBB_TRANSFORMED_SCATTERING (pbb2);
-  ppl_Pointset_Powerset_NNC_Polyhedron_t po;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t eqpp;
+  ppl_Pointset_Powerset_C_Polyhedron_t po;
+  ppl_Pointset_Powerset_C_Polyhedron_t eqpp;
   graphite_dim_t sdim1 = pdr_nb_subscripts (pdr1) + 1;
   graphite_dim_t sdim2 = pdr_nb_subscripts (pdr2) + 1;
   graphite_dim_t tdim1 = pbb_nb_scattering_transform (pbb1);
@@ -487,20 +489,20 @@ graphite_carried_dependence_level_k (poly_dr_p pdr1, poly_dr_p pdr2,
     return true;
 
   po = dependence_polyhedron (pbb1, pbb2, d1, d2, pdr1, pdr2, so1, so2, true, false);
-  if (ppl_Pointset_Powerset_NNC_Polyhedron_is_empty (po))
+  if (ppl_Pointset_Powerset_C_Polyhedron_is_empty (po))
     {
-      ppl_delete_Pointset_Powerset_NNC_Polyhedron (po);
+      ppl_delete_Pointset_Powerset_C_Polyhedron (po);
       return false;
     }
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (po, &dim);
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (po, &dim);
   eqpp = build_pairwise_scheduling_inequality (dim, level, tdim1 + ddim1, 1);
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign (eqpp, po);
-  empty_p = ppl_Pointset_Powerset_NNC_Polyhedron_is_empty (eqpp);
+  ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (eqpp, po);
+  empty_p = ppl_Pointset_Powerset_C_Polyhedron_is_empty (eqpp);
 
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (po);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (eqpp);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (po);
+  ppl_delete_Pointset_Powerset_C_Polyhedron (eqpp);
   return !empty_p;
 }
 
diff --git a/gcc/graphite-interchange.c b/gcc/graphite-interchange.c
index 0697c60..4639afe 100644
--- a/gcc/graphite-interchange.c
+++ b/gcc/graphite-interchange.c
@@ -174,8 +174,8 @@ compute_array_size_poly (poly_dr_p pdr, ppl_dimension_type sub_dim, Value array_
 static void
 compute_array_size (poly_dr_p pdr, ppl_dimension_type sub_dim, Value array_size)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_t data_container = PDR_DATA_CONTAINER (pdr);
-  ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t it, end;
+  ppl_Pointset_Powerset_C_Polyhedron_t data_container = PDR_DATA_CONTAINER (pdr);
+  ppl_Pointset_Powerset_C_Polyhedron_iterator_t it, end;
   Value val;
 
   value_set_si (array_size, 1);
@@ -183,24 +183,24 @@ compute_array_size (poly_dr_p pdr, ppl_dimension_type sub_dim, Value array_size)
     return;
 
   value_init (val);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&it);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&end);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&it);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&end);
 
-  for (ppl_Pointset_Powerset_NNC_Polyhedron_iterator_begin (data_container, it),
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_end (data_container, end);
-       !ppl_Pointset_Powerset_NNC_Polyhedron_iterator_equal_test (it, end);
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_increment (it))
+  for (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (data_container, it),
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_end (data_container, end);
+       !ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (it, end);
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (it))
     {
       ppl_const_Polyhedron_t ph;
 
-      ppl_Pointset_Powerset_NNC_Polyhedron_iterator_dereference (it, &ph);
+      ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (it, &ph);
       compute_array_size_poly (pdr, sub_dim, val, ph);
       value_max (array_size, array_size, val);
     }
 
   value_clear (val);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (it);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (end);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (it);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
 }
 
 /* Computes ACCESS_STRIDES, the sum of all the strides of PDR at
@@ -263,29 +263,29 @@ gather_access_strides (poly_dr_p pdr, graphite_dim_t loop_depth,
 {
   ppl_dimension_type loop_dim = pdr_iterator_dim (pdr, loop_depth);
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_t accesses = PDR_ACCESSES (pdr);
-  ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t it, end;
+  ppl_Pointset_Powerset_C_Polyhedron_t accesses = PDR_ACCESSES (pdr);
+  ppl_Pointset_Powerset_C_Polyhedron_iterator_t it, end;
   Value res;
 
   value_init (res);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&it);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&end);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&it);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&end);
 
-  for (ppl_Pointset_Powerset_NNC_Polyhedron_iterator_begin (accesses, it),
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_end (accesses, end);
-       !ppl_Pointset_Powerset_NNC_Polyhedron_iterator_equal_test (it, end);
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_increment (it))
+  for (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (accesses, it),
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_end (accesses, end);
+       !ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (it, end);
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (it))
     {
       ppl_const_Polyhedron_t ph;
 
-      ppl_Pointset_Powerset_NNC_Polyhedron_iterator_dereference (it, &ph);
+      ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (it, &ph);
       gather_access_strides_poly (pdr, ph, loop_dim, res);
       value_addto (access_strides, access_strides, res);
     }
 
   value_clear (res);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (it);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (end);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (it);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
 }
 
 /* Returns true when it is profitable to interchange loop at depth1
diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c
index 5fa0461..087cf36 100644
--- a/gcc/graphite-poly.c
+++ b/gcc/graphite-poly.c
@@ -299,8 +299,8 @@ apply_poly_transforms (scop_p scop)
 
 void
 new_poly_dr (poly_bb_p pbb,
-	     ppl_Pointset_Powerset_NNC_Polyhedron_t accesses,
-	     ppl_Pointset_Powerset_NNC_Polyhedron_t data_container,
+	     ppl_Pointset_Powerset_C_Polyhedron_t accesses,
+	     ppl_Pointset_Powerset_C_Polyhedron_t data_container,
 	     enum POLY_DR_TYPE type, void *cdr)
 {
   poly_dr_p pdr = XNEW (struct poly_dr);
@@ -318,7 +318,7 @@ new_poly_dr (poly_bb_p pbb,
 void
 free_poly_dr (poly_dr_p pdr)
 {
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (PDR_ACCESSES (pdr));
+  ppl_delete_Pointset_Powerset_C_Polyhedron (PDR_ACCESSES (pdr));
 
   XDELETE (pdr);
 }
@@ -349,7 +349,7 @@ free_poly_bb (poly_bb_p pbb)
   int i;
   poly_dr_p pdr;
   
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron (PBB_DOMAIN (pbb));
+  ppl_delete_Pointset_Powerset_C_Polyhedron (PBB_DOMAIN (pbb));
 
   if (PBB_TRANSFORMED_SCATTERING (pbb))
     ppl_delete_Polyhedron (PBB_TRANSFORMED_SCATTERING (pbb));
@@ -463,7 +463,7 @@ free_scop (scop_p scop)
   VEC_free (poly_bb_p, heap, SCOP_BBS (scop));
 
   if (SCOP_CONTEXT (scop))
-    ppl_delete_Pointset_Powerset_NNC_Polyhedron (SCOP_CONTEXT (scop));
+    ppl_delete_Pointset_Powerset_C_Polyhedron (SCOP_CONTEXT (scop));
 
   XDELETE (scop);
 }
@@ -747,10 +747,10 @@ pbb_number_of_iterations (poly_bb_p pbb, graphite_dim_t loop_depth, Value niter)
   value_init (dv);
   ppl_new_Coefficient (&num);
   ppl_new_Coefficient (&denom);
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (PBB_DOMAIN (pbb), &dim);
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (PBB_DOMAIN (pbb), &dim);
   ppl_new_Linear_Expression_with_dimension (&le, dim);
   ppl_set_coef (le, loop_iter, 1);
-  ppl_Pointset_Powerset_NNC_Polyhedron_maximize (PBB_DOMAIN (pbb), le,
+  ppl_Pointset_Powerset_C_Polyhedron_maximize (PBB_DOMAIN (pbb), le,
 						 num, denom, &maximum);
 
   if (maximum == 1)
diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h
index bb8b625..bb0053c 100644
--- a/gcc/graphite-poly.h
+++ b/gcc/graphite-poly.h
@@ -131,8 +131,8 @@ struct poly_dr
 
      | i   j   k   a   1
      | 0   0   0  -1   15  = 0 */
-  ppl_Pointset_Powerset_NNC_Polyhedron_t accesses;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t data_container;
+  ppl_Pointset_Powerset_C_Polyhedron_t accesses;
+  ppl_Pointset_Powerset_C_Polyhedron_t data_container;
 };
 
 #define PDR_CDR(PDR) (PDR->compiler_dr)
@@ -141,8 +141,8 @@ struct poly_dr
 #define PDR_ACCESSES(PDR) (PDR->accesses)
 #define PDR_DATA_CONTAINER(PDR) (PDR->data_container)
 
-void new_poly_dr (poly_bb_p, ppl_Pointset_Powerset_NNC_Polyhedron_t,
-		  ppl_Pointset_Powerset_NNC_Polyhedron_t,
+void new_poly_dr (poly_bb_p, ppl_Pointset_Powerset_C_Polyhedron_t,
+		  ppl_Pointset_Powerset_C_Polyhedron_t,
 		  enum POLY_DR_TYPE, void *);
 void free_poly_dr (poly_dr_p);
 void debug_pdr (poly_dr_p);
@@ -157,7 +157,7 @@ pdr_nb_subscripts (poly_dr_p pdr)
   poly_bb_p pbb = PDR_PBB (pdr);
   ppl_dimension_type dim;
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (PDR_ACCESSES (pdr), &dim);
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (PDR_ACCESSES (pdr), &dim);
   return dim - pbb_dim_iter_domain (pbb) - pbb_nb_params (pbb) - 1;
 }
 
@@ -254,7 +254,7 @@ struct poly_bb
 
      The number of variables in the DOMAIN may change and is not
      related to the number of loops in the original code.  */
-  ppl_Pointset_Powerset_NNC_Polyhedron_t domain;
+  ppl_Pointset_Powerset_C_Polyhedron_t domain;
 
   /* The data references we access.  */
   VEC (poly_dr_p, heap) *drs;
@@ -330,7 +330,7 @@ pbb_dim_iter_domain (const struct poly_bb *pbb)
   scop_p scop = PBB_SCOP (pbb);
   ppl_dimension_type dim;
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (PBB_DOMAIN (pbb), &dim);
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (PBB_DOMAIN (pbb), &dim);
   return dim - scop_nb_params (scop);
 }
 
@@ -525,7 +525,7 @@ struct scop
   -128 >= a >= 127
      0 >= b >= 65,535
      c = 2a + b  */
-  ppl_Pointset_Powerset_NNC_Polyhedron_t context;
+  ppl_Pointset_Powerset_C_Polyhedron_t context;
 };
 
 #define SCOP_BBS(S) (S->bbs)
diff --git a/gcc/graphite-ppl.c b/gcc/graphite-ppl.c
index 5037aea..71bbb0a 100644
--- a/gcc/graphite-ppl.c
+++ b/gcc/graphite-ppl.c
@@ -85,12 +85,12 @@ new_Constraint_System_from_Cloog_Matrix (ppl_Constraint_System_t *pcs,
 /* Creates a PPL Polyhedron from MATRIX.  */
 
 void
-new_NNC_Polyhedron_from_Cloog_Matrix (ppl_Polyhedron_t *ph,
+new_C_Polyhedron_from_Cloog_Matrix (ppl_Polyhedron_t *ph,
 				      CloogMatrix *matrix)
 {
   ppl_Constraint_System_t cs;
   new_Constraint_System_from_Cloog_Matrix (&cs, matrix);
-  ppl_new_NNC_Polyhedron_recycle_Constraint_System (ph, cs);
+  ppl_new_C_Polyhedron_recycle_Constraint_System (ph, cs);
 }
 
 /* Counts the number of constraints in PCS.  */
@@ -239,23 +239,23 @@ new_Cloog_Domain_from_ppl_Polyhedron (ppl_const_Polyhedron_t ph)
 
 CloogDomain *
 new_Cloog_Domain_from_ppl_Pointset_Powerset (
-  ppl_Pointset_Powerset_NNC_Polyhedron_t ps)
+  ppl_Pointset_Powerset_C_Polyhedron_t ps)
 {
   CloogDomain *res = NULL;
-  ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t it, end;
+  ppl_Pointset_Powerset_C_Polyhedron_iterator_t it, end;
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&it);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&end);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&it);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&end);
 
-  for (ppl_Pointset_Powerset_NNC_Polyhedron_iterator_begin (ps, it),
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_end (ps, end);
-       !ppl_Pointset_Powerset_NNC_Polyhedron_iterator_equal_test (it, end);
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_increment (it))
+  for (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (ps, it),
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_end (ps, end);
+       !ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (it, end);
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (it))
     {
       ppl_const_Polyhedron_t ph;
       CloogDomain *tmp;
 
-      ppl_Pointset_Powerset_NNC_Polyhedron_iterator_dereference (it, &ph);
+      ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (it, &ph);
       tmp = new_Cloog_Domain_from_ppl_Polyhedron (ph);
 
       if (res == NULL)
@@ -264,8 +264,8 @@ new_Cloog_Domain_from_ppl_Pointset_Powerset (
 	res = cloog_domain_union (res, tmp);
     }
 
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (it);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (end);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (it);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
   
   gcc_assert (res != NULL);
 
@@ -336,7 +336,7 @@ ppl_set_coef_gmp (ppl_Linear_Expression_t e, ppl_dimension_type i, Value x)
 */
 
 void
-ppl_insert_dimensions_pointset (ppl_Pointset_Powerset_NNC_Polyhedron_t ph, int x,
+ppl_insert_dimensions_pointset (ppl_Pointset_Powerset_C_Polyhedron_t ph, int x,
 				int nb_new_dims)
 {
   ppl_dimension_type i, dim;
@@ -346,8 +346,8 @@ ppl_insert_dimensions_pointset (ppl_Pointset_Powerset_NNC_Polyhedron_t ph, int x
   x_ppl = (ppl_dimension_type) x;
   nb_new_dims_ppl = (ppl_dimension_type) nb_new_dims;
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (ph, &dim);
-  ppl_Pointset_Powerset_NNC_Polyhedron_add_space_dimensions_and_embed (ph, nb_new_dims);
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (ph, &dim);
+  ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed (ph, nb_new_dims);
 
   map = (ppl_dimension_type *) XNEWVEC (ppl_dimension_type, dim + nb_new_dims);
 
@@ -360,7 +360,7 @@ ppl_insert_dimensions_pointset (ppl_Pointset_Powerset_NNC_Polyhedron_t ph, int x
   for (i = x_ppl + nb_new_dims_ppl; i < dim + nb_new_dims_ppl; i++)
     map[i - nb_new_dims_ppl] = i;
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_map_space_dimensions (ph, map, dim + nb_new_dims);
+  ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (ph, map, dim + nb_new_dims);
   free (map);
 }
 
@@ -430,7 +430,7 @@ ppl_strip_loop (ppl_Polyhedron_t ph, ppl_dimension_type loop, int stride)
   ppl_Polyhedron_get_constraints (ph, &pcs);
 
   /* Start from a copy of the constraints.  */
-  ppl_new_NNC_Polyhedron_from_space_dimension (&res, dim + 1, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&res, dim + 1, 0);
   ppl_Polyhedron_add_constraints (res, pcs);
 
   /* Add an empty dimension for the strip loop.  */
@@ -441,7 +441,7 @@ ppl_strip_loop (ppl_Polyhedron_t ph, ppl_dimension_type loop, int stride)
   {
     ppl_Polyhedron_t tmp;
 
-    ppl_new_NNC_Polyhedron_from_space_dimension (&tmp, dim + 1, 0);
+    ppl_new_C_Polyhedron_from_space_dimension (&tmp, dim + 1, 0);
     ppl_new_Constraint_System_const_iterator (&cit);
     ppl_new_Constraint_System_const_iterator (&end);
 
@@ -565,26 +565,26 @@ ppl_print_polyhedron_matrix (FILE *file, ppl_const_Polyhedron_t ph)
 
 void
 ppl_print_powerset_matrix (FILE *file,
-			   ppl_Pointset_Powerset_NNC_Polyhedron_t ps)
+			   ppl_Pointset_Powerset_C_Polyhedron_t ps)
 {
-  ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t it, end;
+  ppl_Pointset_Powerset_C_Polyhedron_iterator_t it, end;
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&it);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator (&end);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&it);
+  ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&end);
 
-  for (ppl_Pointset_Powerset_NNC_Polyhedron_iterator_begin (ps, it),
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_end (ps, end);
-       !ppl_Pointset_Powerset_NNC_Polyhedron_iterator_equal_test (it, end);
-       ppl_Pointset_Powerset_NNC_Polyhedron_iterator_increment (it))
+  for (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (ps, it),
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_end (ps, end);
+       !ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (it, end);
+       ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (it))
     {
       ppl_const_Polyhedron_t ph;
 
-      ppl_Pointset_Powerset_NNC_Polyhedron_iterator_dereference (it, &ph);
+      ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (it, &ph);
       ppl_print_polyhedron_matrix (file, ph);
     }
 
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (it);
-  ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator (end);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (it);
+  ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
 }
 
 /* Print to STDERR the polyhedron PH under its PolyLib matrix form.  */
@@ -598,7 +598,7 @@ debug_ppl_polyhedron_matrix (ppl_Polyhedron_t ph)
 /* Print to STDERR the powerset PS in its PolyLib matrix form.  */
 
 void
-debug_ppl_powerset_matrix (ppl_Pointset_Powerset_NNC_Polyhedron_t ps)
+debug_ppl_powerset_matrix (ppl_Pointset_Powerset_C_Polyhedron_t ps)
 {
   ppl_print_powerset_matrix (stderr, ps);
 }
@@ -610,7 +610,7 @@ void
 ppl_read_polyhedron_matrix (ppl_Polyhedron_t *ph, FILE *file)
 {
   CloogMatrix *mat = cloog_matrix_read (file);
-  new_NNC_Polyhedron_from_Cloog_Matrix (ph, mat);
+  new_C_Polyhedron_from_Cloog_Matrix (ph, mat);
   cloog_matrix_free (mat);
 }
 #endif
diff --git a/gcc/graphite-ppl.h b/gcc/graphite-ppl.h
index ef376ac..8a23c93 100644
--- a/gcc/graphite-ppl.h
+++ b/gcc/graphite-ppl.h
@@ -27,20 +27,21 @@ along with GCC; see the file COPYING3.  If not see
 CloogMatrix *new_Cloog_Matrix_from_ppl_Polyhedron (ppl_const_Polyhedron_t);
 CloogDomain *new_Cloog_Domain_from_ppl_Polyhedron (ppl_const_Polyhedron_t);
 CloogDomain * new_Cloog_Domain_from_ppl_Pointset_Powerset (
-  ppl_Pointset_Powerset_NNC_Polyhedron_t);
-void new_NNC_Polyhedron_from_Cloog_Matrix (ppl_Polyhedron_t *, CloogMatrix *);
+  ppl_Pointset_Powerset_C_Polyhedron_t);
+void new_C_Polyhedron_from_Cloog_Matrix (ppl_Polyhedron_t *, CloogMatrix *);
 void insert_constraint_into_matrix (CloogMatrix *, int, ppl_const_Constraint_t);
 ppl_Polyhedron_t ppl_strip_loop (ppl_Polyhedron_t, ppl_dimension_type, int);
 int ppl_lexico_compare_linear_expressions (ppl_Linear_Expression_t,
 					   ppl_Linear_Expression_t);
 
 void ppl_print_polyhedron_matrix (FILE *, ppl_const_Polyhedron_t);
-void ppl_print_powerset_matrix (FILE *, ppl_Pointset_Powerset_NNC_Polyhedron_t);
+void ppl_print_powerset_matrix (FILE *, ppl_Pointset_Powerset_C_Polyhedron_t);
 void debug_ppl_polyhedron_matrix (ppl_Polyhedron_t);
-void debug_ppl_powerset_matrix (ppl_Pointset_Powerset_NNC_Polyhedron_t);
+void debug_ppl_powerset_matrix (ppl_Pointset_Powerset_C_Polyhedron_t);
 void ppl_read_polyhedron_matrix (ppl_Polyhedron_t *, FILE *);
 void ppl_insert_dimensions (ppl_Polyhedron_t, int, int);
-void ppl_insert_dimensions_pointset (ppl_Pointset_Powerset_NNC_Polyhedron_t, int, int);
+void ppl_insert_dimensions_pointset (ppl_Pointset_Powerset_C_Polyhedron_t, int,
+				     int);
 void ppl_set_inhomogeneous_gmp (ppl_Linear_Expression_t, Value);
 void ppl_set_coef_gmp (ppl_Linear_Expression_t, ppl_dimension_type, Value);
 
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index a58f039..00c15be 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -331,7 +331,7 @@ build_pbb_scattering_polyhedrons (ppl_Linear_Expression_t static_schedule,
 
   value_init (v);
   ppl_new_Coefficient (&c);
-  ppl_new_NNC_Polyhedron_from_space_dimension
+  ppl_new_C_Polyhedron_from_space_dimension
     (&PBB_TRANSFORMED_SCATTERING (pbb), dim, 0);
 
   PBB_NB_SCATTERING_TRANSFORM (pbb) = scattering_dimensions;
@@ -376,7 +376,7 @@ build_pbb_scattering_polyhedrons (ppl_Linear_Expression_t static_schedule,
   value_clear (v);
   ppl_delete_Coefficient (c);
 
-  ppl_new_NNC_Polyhedron_from_NNC_Polyhedron (&PBB_ORIGINAL_SCATTERING (pbb),
+  ppl_new_C_Polyhedron_from_C_Polyhedron (&PBB_ORIGINAL_SCATTERING (pbb),
 					      PBB_TRANSFORMED_SCATTERING (pbb));
 }
 
@@ -919,7 +919,7 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
     ppl_dimension_type *map 
       = (ppl_dimension_type *) XNEWVEC (ppl_dimension_type, dim);
 
-    ppl_new_NNC_Polyhedron_from_space_dimension (&ph, dim, 0);
+    ppl_new_C_Polyhedron_from_space_dimension (&ph, dim, 0);
     ppl_Polyhedron_get_constraints (outer_ph, &pcs);
     ppl_Polyhedron_add_constraints (ph, pcs);
 
@@ -997,8 +997,8 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
       && loop_in_sese_p (loop->next, region))
     build_loop_iteration_domains (scop, loop->next, outer_ph, nb);
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron
-    ((ppl_Pointset_Powerset_NNC_Polyhedron_t *) &loop->aux, ph);
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron
+    ((ppl_Pointset_Powerset_C_Polyhedron_t *) &loop->aux, ph);
 
   ppl_delete_Polyhedron (ph);
 }
@@ -1034,11 +1034,12 @@ ppl_constraint_type_from_tree_code (enum tree_code code)
 {
   switch (code)
     {
+    /* We do not support LT and GT to be able to work with C_Polyhedron.
+       As we work on integer polyhedron "a < b" can be expressed by
+       "a + 1 <= b".  */
     case LT_EXPR:
-      return PPL_CONSTRAINT_TYPE_LESS_THAN;
-
     case GT_EXPR:
-      return PPL_CONSTRAINT_TYPE_GREATER_THAN;
+      gcc_unreachable ();
 
     case LE_EXPR:
       return PPL_CONSTRAINT_TYPE_LESS_OR_EQUAL;
@@ -1059,21 +1060,49 @@ ppl_constraint_type_from_tree_code (enum tree_code code)
    condition or to handle inequalities.  */
 
 static void
-add_condition_to_domain (ppl_Pointset_Powerset_NNC_Polyhedron_t ps, gimple stmt,
+add_condition_to_domain (ppl_Pointset_Powerset_C_Polyhedron_t ps, gimple stmt,
 			 poly_bb_p pbb, enum tree_code code)
 {
+  Value v;
+  ppl_Coefficient_t c;
   ppl_Linear_Expression_t left, right;
   ppl_Constraint_t cstr;
   enum ppl_enum_Constraint_Type type;
 
-  type = ppl_constraint_type_from_tree_code (code);
-
   left = create_linear_expr_from_tree (pbb, gimple_cond_lhs (stmt));
   right = create_linear_expr_from_tree (pbb, gimple_cond_rhs (stmt));
+
+  /* If we have < or > expressions convert them to <= or >= by adding 1 to
+     the left or the right side of the expression. */
+  if (code == LT_EXPR)
+    {
+      value_init (v);
+      value_set_si (v, 1);
+      ppl_new_Coefficient (&c);
+      ppl_assign_Coefficient_from_mpz_t (c, v);
+      ppl_Linear_Expression_add_to_inhomogeneous (left, c);
+      ppl_delete_Coefficient (c);
+
+      code = LE_EXPR;
+    }
+  else if (code == GT_EXPR)
+    {
+      value_init (v);
+      value_set_si (v, 1);
+      ppl_new_Coefficient (&c);
+      ppl_assign_Coefficient_from_mpz_t (c, v);
+      ppl_Linear_Expression_add_to_inhomogeneous (right, c);
+      ppl_delete_Coefficient (c);
+
+      code = GE_EXPR;
+    }
+
+  type = ppl_constraint_type_from_tree_code (code);
+
   ppl_subtract_Linear_Expression_from_Linear_Expression (left, right);
 
   ppl_new_Constraint (&cstr, left, type);
-  ppl_Pointset_Powerset_NNC_Polyhedron_add_constraint (ps, cstr); 
+  ppl_Pointset_Powerset_C_Polyhedron_add_constraint (ps, cstr);
 
   ppl_delete_Constraint (cstr);
   ppl_delete_Linear_Expression (left);
@@ -1089,15 +1118,15 @@ add_condition_to_pbb (poly_bb_p pbb, gimple stmt, enum tree_code code)
 {
   if (code == NE_EXPR)
     {
-      ppl_Pointset_Powerset_NNC_Polyhedron_t left = PBB_DOMAIN (pbb); 
-      ppl_Pointset_Powerset_NNC_Polyhedron_t right;
-      ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Pointset_Powerset_NNC_Polyhedron
+      ppl_Pointset_Powerset_C_Polyhedron_t left = PBB_DOMAIN (pbb);
+      ppl_Pointset_Powerset_C_Polyhedron_t right;
+      ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron
 	(&right, left);
       add_condition_to_domain (left, stmt, pbb, LT_EXPR);
       add_condition_to_domain (right, stmt, pbb, GT_EXPR);
-      ppl_Pointset_Powerset_NNC_Polyhedron_upper_bound_assign (left,
+      ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (left,
 							       right);
-      ppl_delete_Pointset_Powerset_NNC_Polyhedron (right);
+      ppl_delete_Pointset_Powerset_C_Polyhedron (right);
     }
   else
     add_condition_to_domain (PBB_DOMAIN (pbb), stmt, pbb, code);
@@ -1369,12 +1398,12 @@ build_scop_context (scop_p scop)
   ppl_Polyhedron_t context;
   graphite_dim_t p, n = scop_nb_params (scop);
 
-  ppl_new_NNC_Polyhedron_from_space_dimension (&context, n, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&context, n, 0);
 
   for (p = 0; p < n; p++)
     add_param_constraints (scop, context, p);
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron
     (&SCOP_CONTEXT (scop), context);
 
   ppl_delete_Polyhedron (context);
@@ -1393,7 +1422,7 @@ build_scop_iteration_domain (scop_p scop)
   ppl_Polyhedron_t ph;
   poly_bb_p pbb;
 
-  ppl_new_NNC_Polyhedron_from_space_dimension (&ph, scop_nb_params (scop), 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&ph, scop_nb_params (scop), 0);
 
   for (i = 0; VEC_iterate (loop_p, SESE_LOOP_NEST (region), i, loop); i++)
     if (!loop_in_sese_p (loop_outer (loop), region)) 
@@ -1401,18 +1430,18 @@ build_scop_iteration_domain (scop_p scop)
 
   for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++)
     if (gbb_loop (PBB_BLACK_BOX (pbb))->aux)
-      ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Pointset_Powerset_NNC_Polyhedron
-	(&PBB_DOMAIN (pbb), (ppl_const_Pointset_Powerset_NNC_Polyhedron_t)
+      ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron
+	(&PBB_DOMAIN (pbb), (ppl_const_Pointset_Powerset_C_Polyhedron_t)
 	 gbb_loop (PBB_BLACK_BOX (pbb))->aux);
     else
-      ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron
+      ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron
 	(&PBB_DOMAIN (pbb), ph);
 
   for (i = 0; VEC_iterate (loop_p, SESE_LOOP_NEST (region), i, loop); i++)
     if (loop->aux)
       {
-	ppl_delete_Pointset_Powerset_NNC_Polyhedron 
-	  ((ppl_Pointset_Powerset_NNC_Polyhedron_t) loop->aux);
+	ppl_delete_Pointset_Powerset_C_Polyhedron
+	  ((ppl_Pointset_Powerset_C_Polyhedron_t) loop->aux);
 	loop->aux = NULL;
       }
 
@@ -1536,24 +1565,24 @@ static void
 build_poly_dr (data_reference_p dr, poly_bb_p pbb)
 {
   ppl_Polyhedron_t accesses, data_container;
-  ppl_Pointset_Powerset_NNC_Polyhedron_t accesses_ps, data_container_ps;
+  ppl_Pointset_Powerset_C_Polyhedron_t accesses_ps, data_container_ps;
   ppl_dimension_type dom_nb_dims;
   ppl_dimension_type accessp_nb_dims;
 
-  ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension (PBB_DOMAIN (pbb),
+  ppl_Pointset_Powerset_C_Polyhedron_space_dimension (PBB_DOMAIN (pbb),
 							&dom_nb_dims);
   accessp_nb_dims = dom_nb_dims + 1 + DR_NUM_DIMENSIONS (dr);
 
-  ppl_new_NNC_Polyhedron_from_space_dimension (&accesses, accessp_nb_dims, 0);
-  ppl_new_NNC_Polyhedron_from_space_dimension (&data_container, accessp_nb_dims, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&accesses, accessp_nb_dims, 0);
+  ppl_new_C_Polyhedron_from_space_dimension (&data_container, accessp_nb_dims, 0);
 
   pdr_add_alias_set (accesses, dr, accessp_nb_dims, dom_nb_dims);
   pdr_add_memory_accesses (accesses, dr, accessp_nb_dims, dom_nb_dims, pbb);
   pdr_add_data_dimensions (data_container, dr, accessp_nb_dims, dom_nb_dims);
 
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&accesses_ps,
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&accesses_ps,
 								accesses);
-  ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron (&data_container_ps,
+  ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (&data_container_ps,
 								data_container);
   ppl_delete_Polyhedron (accesses);
   new_poly_dr (pbb, accesses_ps, data_container_ps,
-- 
1.6.1.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]