From 1ce0e1d2177edea77b07840a3fff1ddfc0a3610a Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Fri, 14 Jul 2017 11:51:59 +0200 Subject: [PATCH] cpp/python: export isl_schedule_constraints This commit exposes the important documented and not yet exposed functions of isl_schedule_constraints to the cpp and python bindings. This includes a new constructor: isl_schedule_constraints_on_domain the following setters: isl_schedule_constraints_set_context isl_schedule_constraints_set_validity isl_schedule_constraints_set_coincidence isl_schedule_constraints_set_proximity isl_schedule_constraints_set_conditional_validity and the functionality to compute a schedule from these inputs: isl_schedule_constraints_compute_schedule The interface to inspect isl_schedule_constraints is already exposed in the language bindings, but the interface to construct it from a domain and to set the individual dependence kinds has not yet been exposed. This part of the schedule_constraint interface is now exposed. We export isl_schedule_constraints_on_domain as named static constructor rather than as an unnamed constructor, as it has a very specific name which is worth preserving. This follows what has been done earlier for isl_ast_build_from_context. We currently do not yet expose isl_schedule_constraints_apply, but wait until a strong need arises to expose it. isl_schedule_constraints are used in Polly and these new functions of the cpp interface have been tested to work with Polly on the full Polly test suite. Signed-off-by: Tobias Grosser Signed-off-by: Sven Verdoolaege --- include/isl/schedule.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/isl/schedule.h b/include/isl/schedule.h index 895888e3..7970b647 100644 --- a/include/isl/schedule.h +++ b/include/isl/schedule.h @@ -52,19 +52,25 @@ int isl_options_get_schedule_carry_self_first(isl_ctx *ctx); __isl_give isl_schedule_constraints *isl_schedule_constraints_copy( __isl_keep isl_schedule_constraints *sc); +__isl_export __isl_give isl_schedule_constraints *isl_schedule_constraints_on_domain( __isl_take isl_union_set *domain); +__isl_export __isl_give isl_schedule_constraints *isl_schedule_constraints_set_context( __isl_take isl_schedule_constraints *sc, __isl_take isl_set *context); +__isl_export __isl_give isl_schedule_constraints *isl_schedule_constraints_set_validity( __isl_take isl_schedule_constraints *sc, __isl_take isl_union_map *validity); +__isl_export __isl_give isl_schedule_constraints *isl_schedule_constraints_set_coincidence( __isl_take isl_schedule_constraints *sc, __isl_take isl_union_map *coincidence); +__isl_export __isl_give isl_schedule_constraints *isl_schedule_constraints_set_proximity( __isl_take isl_schedule_constraints *sc, __isl_take isl_union_map *proximity); +__isl_export __isl_give isl_schedule_constraints * isl_schedule_constraints_set_conditional_validity( __isl_take isl_schedule_constraints *sc, @@ -113,6 +119,7 @@ void isl_schedule_constraints_dump(__isl_keep isl_schedule_constraints *sc); __isl_give char *isl_schedule_constraints_to_str( __isl_keep isl_schedule_constraints *sc); +__isl_export __isl_give isl_schedule *isl_schedule_constraints_compute_schedule( __isl_take isl_schedule_constraints *sc); -- 2.11.4.GIT