From 7ee12612d1cbe6df7e0c16536fd5f51a2eb80c57 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Tue, 9 Feb 2010 15:30:04 +0100 Subject: [PATCH] update isl for isl_basic_set_foreach_constraint Signed-off-by: Sven Verdoolaege --- isl | 2 +- source/isl/constraints.c | 42 ++++++++++++++++++++---------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/isl b/isl index e7f9ae7..90c4a00 160000 --- a/isl +++ b/isl @@ -1 +1 @@ -Subproject commit e7f9ae71a0d40b7fda49ed623a91942c89e40a0c +Subproject commit 90c4a002d4b08c4fda3a254ff2ece668fec96cf9 diff --git a/source/isl/constraints.c b/source/isl/constraints.c index cb2de96..f1bcf38 100644 --- a/source/isl/constraints.c +++ b/source/isl/constraints.c @@ -699,19 +699,6 @@ CloogConstraintSet *cloog_constraint_set_reduce(CloogConstraintSet *constraints, return cloog_constraint_set_from_isl_basic_set(bset); } -CloogConstraint *cloog_constraint_first(CloogConstraintSet *constraints) -{ - return cloog_constraint_from_isl_constraint( - isl_basic_set_first_constraint( - isl_basic_set_copy(&constraints->bset))); -} - -CloogConstraint *cloog_constraint_next(CloogConstraint *constraint) -{ - return cloog_constraint_from_isl_constraint( - isl_constraint_next(&constraint->isl)); -} - CloogConstraint *cloog_constraint_copy(CloogConstraint *constraint) { return cloog_constraint_from_isl_constraint( @@ -723,19 +710,30 @@ void cloog_constraint_release(CloogConstraint *constraint) isl_constraint_free(&constraint->isl); } +struct cloog_isl_foreach { + int (*fn)(CloogConstraint *constraint, void *user); + void *user; +}; + +static int cloog_isl_foreach_cb(__isl_take isl_constraint *c, void *user) +{ + struct cloog_isl_foreach *data = (struct cloog_isl_foreach *)user; + int ret; + + ret = data->fn(cloog_constraint_from_isl_constraint(c), data->user); + + isl_constraint_free(c); + + return ret; +} + int cloog_constraint_set_foreach_constraint(CloogConstraintSet *constraints, int (*fn)(CloogConstraint *constraint, void *user), void *user) { - CloogConstraint *c; - - for (c = cloog_constraint_first(constraints); - cloog_constraint_is_valid(c); c = cloog_constraint_next(c)) - if (fn(c, user) < 0) { - cloog_constraint_release(c); - return -1; - } + struct cloog_isl_foreach data = { fn, user }; - return 0; + return isl_basic_set_foreach_constraint(&constraints->bset, + cloog_isl_foreach_cb, &data); } CloogConstraint *cloog_equal_constraint(CloogEqualities *equal, int j) -- 2.11.4.GIT