From 3f6c389c2b3ba4bc3fae90ea80bc3b602693ca4e Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Mon, 1 Jun 2015 10:48:50 +0200 Subject: [PATCH] iscc: add domain operation on schedules Signed-off-by: Sven Verdoolaege --- doc/isl.tex | 6 ++++++ iscc.c | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/doc/isl.tex b/doc/isl.tex index 608c377..19d6c0a 100644 --- a/doc/isl.tex +++ b/doc/isl.tex @@ -710,6 +710,9 @@ domain of piecewise quasipolynomial $q$ $s$ := \ai[\tt]{dom} $f$ & domain of piecewise quasipolynomial fold $f$ \\ +$s$ := \ai[\tt]{dom} $t$ & +domain of schedule $t$ +\\ $s$ := \ai[\tt]{domain} $m$ & domain of map $m$ \\ @@ -719,6 +722,9 @@ domain of piecewise quasipolynomial $q$ $s$ := \ai[\tt]{domain} $f$ & domain of piecewise quasipolynomial fold $f$ \\ +$s$ := \ai[\tt]{domain} $t$ & +domain of schedule $t$ +\\ $m_2$ := \ai[\tt]{domain\_map} $m_1$ & a map from a wrapped copy of $m_1$ to the domain of $m_1$ \\ diff --git a/iscc.c b/iscc.c index 0d8a0f6..9be959c 100644 --- a/iscc.c +++ b/iscc.c @@ -804,6 +804,19 @@ static __isl_give isl_union_pw_qpolynomial *union_pw_qpolynomial_upoly( return isl_union_pw_qpolynomial_to_polynomial(upwqp, 1); } +/* Return the domain of "schedule". + */ +static __isl_give isl_union_set *schedule_domain( + __isl_take isl_schedule *schedule) +{ + isl_union_set *domain; + + domain = isl_schedule_get_domain(schedule); + isl_schedule_free(schedule); + + return domain; +} + typedef void *(*isc_un_op_fn)(void *arg); struct isc_un_op { enum isl_token_type op; @@ -845,6 +858,8 @@ struct isc_named_un_op named_un_ops[] = { (isc_un_op_fn) &isl_union_map_deltas } }, {"deltas_map", { -1, isl_obj_union_map, isl_obj_union_map, (isc_un_op_fn) &isl_union_map_deltas_map } }, + {"dom", { -1, isl_obj_schedule, isl_obj_union_set, + (isc_un_op_fn) &schedule_domain } }, {"dom", { -1, isl_obj_union_map, isl_obj_union_set, (isc_un_op_fn) &isl_union_map_domain } }, {"dom", { -1, isl_obj_union_pw_qpolynomial, isl_obj_union_set, @@ -852,6 +867,8 @@ struct isc_named_un_op named_un_ops[] = { {"dom", { -1, isl_obj_union_pw_qpolynomial_fold, isl_obj_union_set, (isc_un_op_fn) &isl_union_pw_qpolynomial_fold_domain } }, + {"domain", { -1, isl_obj_schedule, isl_obj_union_set, + (isc_un_op_fn) &schedule_domain } }, {"domain", { -1, isl_obj_union_map, isl_obj_union_set, (isc_un_op_fn) &isl_union_map_domain } }, {"domain", { -1, isl_obj_union_pw_qpolynomial, -- 2.11.4.GIT