cpp/python: export isl_schedule_constraints
commit1ce0e1d2177edea77b07840a3fff1ddfc0a3610a
authorTobias Grosser <tobias@grosser.es>
Fri, 14 Jul 2017 09:51:59 +0000 (14 11:51 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Fri, 14 Jul 2017 15:46:59 +0000 (14 17:46 +0200)
tree5fb185a1761717e6cb1940e387cbd7eaf2a3d012
parenta22eb92859a3f5d921ba2e4c17fd98a96bf5ac91
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 <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
include/isl/schedule.h