add isl_multi_aff_set_tuple_id
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 12 Jan 2012 14:24:01 +0000 (15:24 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 13 Jan 2012 10:39:29 +0000 (11:39 +0100)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_multi_templ.c

index d80faf2..22e3a01 100644 (file)
@@ -3176,6 +3176,9 @@ It can be modified using
        __isl_give isl_multi_aff *isl_multi_aff_set_dim_name(
                __isl_take isl_multi_aff *maff,
                enum isl_dim_type type, unsigned pos, const char *s);
+       __isl_give isl_multi_aff *isl_multi_aff_set_tuple_id(
+               __isl_take isl_multi_aff *maff,
+               enum isl_dim_type type, __isl_take isl_id *id);
        __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_tuple_id(
                __isl_take isl_pw_multi_aff *pma,
                enum isl_dim_type type, __isl_take isl_id *id);
index 30b0163..ee9b4e5 100644 (file)
@@ -238,6 +238,9 @@ __isl_give isl_set *isl_pw_aff_list_gt_set(__isl_take isl_pw_aff_list *list1,
 
 isl_ctx *isl_multi_aff_get_ctx(__isl_keep isl_multi_aff *maff);
 __isl_give isl_space *isl_multi_aff_get_space(__isl_keep isl_multi_aff *maff);
+__isl_give isl_multi_aff *isl_multi_aff_set_tuple_id(
+       __isl_take isl_multi_aff *maff,
+       enum isl_dim_type type, __isl_take isl_id *id);
 __isl_give isl_multi_aff *isl_multi_aff_copy(__isl_keep isl_multi_aff *maff);
 void *isl_multi_aff_free(__isl_take isl_multi_aff *maff);
 
index a60b7d4..31699fe 100644 (file)
@@ -201,6 +201,31 @@ __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_domain_space)(
        return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
 }
 
+__isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space)(
+       __isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
+{
+       isl_space *domain;
+
+       domain = isl_space_domain(isl_space_copy(space));
+       return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
+}
+
+__isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_id)(
+       __isl_keep MULTI(BASE) *multi, enum isl_dim_type type,
+       __isl_take isl_id *id)
+{
+       isl_space *space;
+
+       multi = FN(MULTI(BASE),cow)(multi);
+       if (!multi)
+               return isl_id_free(id);
+
+       space = FN(MULTI(BASE),get_space)(multi);
+       space = isl_space_set_tuple_id(space, type, id);
+
+       return FN(MULTI(BASE),reset_space)(multi, space);
+}
+
 __isl_give MULTI(BASE) *FN(MULTI(BASE),realign_domain)(
        __isl_take MULTI(BASE) *multi, __isl_take isl_reordering *exp)
 {