add isl_*_has_dim_id
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 11 Aug 2011 14:33:15 +0000 (16:33 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 12 Aug 2011 09:22:19 +0000 (11:22 +0200)
The isl_*_git_dim_id functions cannot be used to find out
whether a dimension has an id as they may also return NULL
on failures.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/dim.h
include/isl/map.h
include/isl/set.h
isl_dim.c
isl_map.c

index d7d91d3..06813f2 100644 (file)
@@ -539,6 +539,8 @@ using the following functions.
                __isl_take isl_dim *dim,
                enum isl_dim_type type, unsigned pos,
                __isl_take isl_id *id);
+       int isl_dim_has_dim_id(__isl_keep isl_dim *dim,
+               enum isl_dim_type type, unsigned pos);
        __isl_give isl_id *isl_dim_get_dim_id(
                __isl_keep isl_dim *dim,
                enum isl_dim_type type, unsigned pos);
@@ -1377,12 +1379,16 @@ read off using the following functions.
        __isl_give isl_set *isl_set_set_dim_id(
                __isl_take isl_set *set, enum isl_dim_type type,
                unsigned pos, __isl_take isl_id *id);
+       int isl_set_has_dim_id(__isl_keep isl_set *set,
+               enum isl_dim_type type, unsigned pos);
        __isl_give isl_id *isl_set_get_dim_id(
                __isl_keep isl_set *set, enum isl_dim_type type,
                unsigned pos);
        __isl_give isl_map *isl_map_set_dim_id(
                __isl_take isl_map *map, enum isl_dim_type type,
                unsigned pos, __isl_take isl_id *id);
+       int isl_map_has_dim_id(__isl_keep isl_map *map,
+               enum isl_dim_type type, unsigned pos);
        __isl_give isl_id *isl_map_get_dim_id(
                __isl_keep isl_map *map, enum isl_dim_type type,
                unsigned pos);
index d43745b..e6d9ad2 100644 (file)
@@ -53,6 +53,8 @@ __isl_give isl_id *isl_dim_get_tuple_id(__isl_keep isl_dim *dim,
 
 __isl_give isl_dim *isl_dim_set_dim_id(__isl_take isl_dim *dim,
        enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
+int isl_dim_has_dim_id(__isl_keep isl_dim *dim,
+       enum isl_dim_type type, unsigned pos);
 __isl_give isl_id *isl_dim_get_dim_id(__isl_keep isl_dim *dim,
        enum isl_dim_type type, unsigned pos);
 
index 410c4f0..e2f9b14 100644 (file)
@@ -86,6 +86,8 @@ __isl_give isl_map *isl_map_set_dim_name(__isl_take isl_map *map,
 
 __isl_give isl_map *isl_map_set_dim_id(__isl_take isl_map *map,
        enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
+int isl_map_has_dim_id(__isl_keep isl_map *map,
+       enum isl_dim_type type, unsigned pos);
 __isl_give isl_id *isl_map_get_dim_id(__isl_keep isl_map *map,
        enum isl_dim_type type, unsigned pos);
 __isl_give isl_map *isl_map_set_tuple_id(__isl_take isl_map *map,
index ba5174f..01b791d 100644 (file)
@@ -61,6 +61,8 @@ __isl_give isl_set *isl_set_set_dim_name(__isl_take isl_set *set,
 
 __isl_give isl_set *isl_set_set_dim_id(__isl_take isl_set *set,
        enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
+int isl_set_has_dim_id(__isl_keep isl_set *set,
+       enum isl_dim_type type, unsigned pos);
 __isl_give isl_id *isl_set_get_dim_id(__isl_keep isl_set *set,
        enum isl_dim_type type, unsigned pos);
 __isl_give isl_set *isl_set_set_tuple_id(__isl_take isl_set *set,
index 6dc6ad0..e5cd206 100644 (file)
--- a/isl_dim.c
+++ b/isl_dim.c
@@ -356,6 +356,14 @@ error:
        return NULL;
 }
 
+int isl_dim_has_dim_id(__isl_keep isl_dim *dim,
+       enum isl_dim_type type, unsigned pos)
+{
+       if (!dim)
+               return -1;
+       return get_id(dim, type, pos) != NULL;
+}
+
 __isl_give isl_id *isl_dim_get_dim_id(__isl_keep isl_dim *dim,
        enum isl_dim_type type, unsigned pos)
 {
index 7bf1e10..e85e644 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -531,12 +531,24 @@ __isl_give isl_set *isl_set_set_dim_name(__isl_take isl_set *set,
        return (isl_set *)isl_map_set_dim_name((isl_map *)set, type, pos, s);
 }
 
+int isl_map_has_dim_id(__isl_keep isl_map *map,
+       enum isl_dim_type type, unsigned pos)
+{
+       return map ? isl_dim_has_dim_id(map->dim, type, pos) : -1;
+}
+
 __isl_give isl_id *isl_map_get_dim_id(__isl_keep isl_map *map,
        enum isl_dim_type type, unsigned pos)
 {
        return map ? isl_dim_get_dim_id(map->dim, type, pos) : NULL;
 }
 
+int isl_set_has_dim_id(__isl_keep isl_set *set,
+       enum isl_dim_type type, unsigned pos)
+{
+       return isl_map_has_dim_id(set, type, pos);
+}
+
 __isl_give isl_id *isl_set_get_dim_id(__isl_keep isl_set *set,
        enum isl_dim_type type, unsigned pos)
 {