speedup compilation
authorSebastian Pop <sebastian.pop@amd.com>
Tue, 25 Jan 2011 06:45:29 +0000 (06:45 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Tue, 25 Jan 2011 06:45:29 +0000 (06:45 +0000)
2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-dependences.c (build_lexicographical_constraint): Stop the
iteration when the bag of constraints is empty.

From-SVN: r169203

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/graphite-dependences.c

index e9e145a949cb56b11683a57c225db804b492fd27..fb0cf2ce8728ca6ac7fcf853bb9e267764a91ab7 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-dependences.c (build_lexicographical_constraint): Stop the
+       iteration when the bag of constraints is empty.
+
 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
index d961c0cabc7f63a1650328bcfa48288fbc77e02a..0db1c600b0e1784b17ee47b5927f807a9bf3fe80 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-dependences.c (build_lexicographical_constraint): Stop the
+       iteration when the bag of constraints is empty.
+
 2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
index 303f9945df0d48bfac4b9596c2a9c7fdabd04855..c9bd1befe532201d129bf84d088c5d40b294f129 100644 (file)
@@ -334,7 +334,9 @@ dr_equality_constraints (graphite_dim_t dim,
 /* Builds scheduling inequality constraints: when DIRECTION is
    1 builds a GE constraint,
    0 builds an EQ constraint,
-   -1 builds a LE constraint.  */
+   -1 builds a LE constraint.
+   DIM is the dimension of the scheduling space.
+   POS and POS + OFFSET are the dimensions that are related.  */
 
 static ppl_Pointset_Powerset_C_Polyhedron_t
 build_pairwise_scheduling (graphite_dim_t dim,
@@ -417,6 +419,9 @@ build_lexicographical_constraint (ppl_Pointset_Powerset_C_Polyhedron_t bag,
       ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (bag, sceq);
       ppl_delete_Pointset_Powerset_C_Polyhedron (sceq);
 
+      if (ppl_Pointset_Powerset_C_Polyhedron_is_empty (bag))
+       break;
+
       lex = build_pairwise_scheduling (dim, i + 1, offset, direction);
       ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (lex, bag);