@@ -1677,6 +1677,10 @@ using the following functions.
__isl_give isl_multi_val *isl_multi_val_reset_tuple_id(
__isl_take isl_multi_val *mv,
enum isl_dim_type type);
+ isl_bool isl_multi_val_has_range_tuple_id(
+ __isl_keep isl_multi_val *mv);
+ __isl_give isl_id *isl_multi_val_get_range_tuple_id(
+ __isl_keep isl_multi_val *mv);
isl_bool isl_multi_val_has_tuple_id(
__isl_keep isl_multi_val *mv,
enum isl_dim_type type);
@@ -1725,6 +1729,10 @@ using the following functions.
isl_multi_union_pw_aff_reset_tuple_id(
__isl_take isl_multi_union_pw_aff *mupa,
enum isl_dim_type type);
+ isl_bool isl_multi_aff_has_range_tuple_id(
+ __isl_keep isl_multi_aff *ma);
+ __isl_give isl_id *isl_multi_aff_get_range_tuple_id(
+ __isl_keep isl_multi_aff *ma);
isl_bool isl_multi_aff_has_tuple_id(
__isl_keep isl_multi_aff *ma,
enum isl_dim_type type);
@@ -1742,12 +1750,21 @@ using the following functions.
__isl_give isl_id *isl_pw_multi_aff_get_tuple_id(
__isl_keep isl_pw_multi_aff *pma,
enum isl_dim_type type);
+ isl_bool isl_multi_pw_aff_has_range_tuple_id(
+ __isl_keep isl_multi_pw_aff *mpa);
+ __isl_give isl_id *isl_multi_pw_aff_get_range_tuple_id(
+ __isl_keep isl_multi_pw_aff *mpa);
isl_bool isl_multi_pw_aff_has_tuple_id(
__isl_keep isl_multi_pw_aff *mpa,
enum isl_dim_type type);
__isl_give isl_id *isl_multi_pw_aff_get_tuple_id(
__isl_keep isl_multi_pw_aff *mpa,
enum isl_dim_type type);
+ isl_bool isl_multi_union_pw_aff_has_range_tuple_id(
+ __isl_keep isl_multi_union_pw_aff *mupa);
+ __isl_give isl_id *
+ isl_multi_union_pw_aff_get_range_tuple_id(
+ __isl_keep isl_multi_union_pw_aff *mupa);
isl_bool isl_multi_union_pw_aff_has_tuple_id(
__isl_keep isl_multi_union_pw_aff *mupa,
enum isl_dim_type type);
@@ -210,8 +210,14 @@ __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_dim_id( \
#define ISL_DECLARE_MULTI_TUPLE_ID(BASE) \
const char *isl_multi_##BASE##_get_tuple_name( \
__isl_keep isl_multi_##BASE *multi, enum isl_dim_type type); \
+__isl_export \
+isl_bool isl_multi_##BASE##_has_range_tuple_id( \
+ __isl_keep isl_multi_##BASE *multi); \
isl_bool isl_multi_##BASE##_has_tuple_id( \
__isl_keep isl_multi_##BASE *multi, enum isl_dim_type type); \
+__isl_export \
+__isl_give isl_id *isl_multi_##BASE##_get_range_tuple_id( \
+ __isl_keep isl_multi_##BASE *multi); \
__isl_give isl_id *isl_multi_##BASE##_get_tuple_id( \
__isl_keep isl_multi_##BASE *multi, enum isl_dim_type type); \
__isl_give isl_multi_##BASE *isl_multi_##BASE##_set_tuple_name( \
@@ -28,6 +28,18 @@ isl_bool FN(MULTI(BASE),has_tuple_id)(__isl_keep MULTI(BASE) *multi,
return isl_space_has_tuple_id(multi->space, type);
}
+/* Does the (range) tuple of "multi" have an identifier?
+ *
+ * Technically, the implementation should use isl_dim_set if "multi"
+ * lives in a set space and isl_dim_out if it lives in a map space.
+ * Internally, however, it can be assumed that isl_dim_set is equal
+ * to isl_dim_out.
+ */
+isl_bool FN(MULTI(BASE),has_range_tuple_id)(__isl_keep MULTI(BASE) *multi)
+{
+ return FN(MULTI(BASE),has_tuple_id)(multi, isl_dim_out);
+}
+
/* Return the id of the specified tuple.
*/
__isl_give isl_id *FN(MULTI(BASE),get_tuple_id)(__isl_keep MULTI(BASE) *multi,
@@ -36,6 +48,19 @@ __isl_give isl_id *FN(MULTI(BASE),get_tuple_id)(__isl_keep MULTI(BASE) *multi,
return multi ? isl_space_get_tuple_id(multi->space, type) : NULL;
}
+/* Return the identifier of the (range) tuple of "multi", assuming it has one.
+ *
+ * Technically, the implementation should use isl_dim_set if "multi"
+ * lives in a set space and isl_dim_out if it lives in a map space.
+ * Internally, however, it can be assumed that isl_dim_set is equal
+ * to isl_dim_out.
+ */
+__isl_give isl_id *FN(MULTI(BASE),get_range_tuple_id)(
+ __isl_keep MULTI(BASE) *multi)
+{
+ return FN(MULTI(BASE),get_tuple_id)(multi, isl_dim_out);
+}
+
__isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_name)(
__isl_keep MULTI(BASE) *multi, enum isl_dim_type type,
const char *s)