If the output needs to be restricted then only a restriction on the source
iterations is required.
If any error occurs, the callback should return C<NULL>.
-An C<isl_restriction> object can be created and freed using the following
-functions.
+An C<isl_restriction> object can be created, freed and inspected
+using the following functions.
#include <isl/flow.h>
__isl_keep isl_map *source_map);
void *isl_restriction_free(
__isl_take isl_restriction *restr);
+ isl_ctx *isl_restriction_get_ctx(
+ __isl_keep isl_restriction *restr);
C<isl_restriction_none> and C<isl_restriction_empty> are special
cases of C<isl_restriction_input>. C<isl_restriction_none>
__isl_give isl_restriction *isl_restriction_output(
__isl_take isl_set *source_restr);
+isl_ctx *isl_restriction_get_ctx(__isl_keep isl_restriction *restr);
+
typedef __isl_give isl_restriction *(*isl_access_restrict)(
__isl_keep isl_map *source_map, __isl_keep isl_set *sink,
void *source_user, void *user);
return NULL;
}
+isl_ctx *isl_restriction_get_ctx(__isl_keep isl_restriction *restr)
+{
+ return restr ? isl_set_get_ctx(restr->source) : NULL;
+}
+
/* A private structure to keep track of a mapping together with
* a user-specified identifier and a boolean indicating whether
* the map represents a must or may access/dependence.