aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphite-dependences.c
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2011-01-25 06:45:29 +0000
committerSebastian Pop <sebastian.pop@amd.com>2011-01-25 06:45:29 +0000
commitc9408c8084d30b58150c06d0eca17688372a9e18 (patch)
treed97f1c3b4184e05c52224475592d2fba1f5180e4 /gcc/graphite-dependences.c
parent5dbd32c34e836998476213288fa0e02d45952e5a (diff)
speedup compilation
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@169203 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-dependences.c')
-rw-r--r--gcc/graphite-dependences.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c
index 303f9945df0..c9bd1befe53 100644
--- a/gcc/graphite-dependences.c
+++ b/gcc/graphite-dependences.c
@@ -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);