From: Sven Verdoolaege Date: Fri, 12 Aug 2011 09:32:14 +0000 (+0200) Subject: add isl_*_has_tuple_id X-Git-Tag: isl-0.08~155 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=552e792ebcd28ffcaf5ca93f66e83f6d2f49c7b2;p=platform%2Fupstream%2Fisl.git add isl_*_has_tuple_id The isl_*_git_tuple_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 --- diff --git a/doc/user.pod b/doc/user.pod index 06813f2..93106a8 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -578,6 +578,8 @@ using the following functions. enum isl_dim_type type, __isl_take isl_id *id); __isl_give isl_dim *isl_dim_reset_tuple_id( __isl_take isl_dim *dim, enum isl_dim_type type); + int isl_dim_has_tuple_id(__isl_keep isl_dim *dim, + enum isl_dim_type type); __isl_give isl_id *isl_dim_get_tuple_id( __isl_keep isl_dim *dim, enum isl_dim_type type); __isl_give isl_dim *isl_dim_set_tuple_name( @@ -1348,6 +1350,7 @@ or relation can be read off or set using the following functions. __isl_take isl_set *set, __isl_take isl_id *id); __isl_give isl_set *isl_set_reset_tuple_id( __isl_take isl_set *set); + int isl_set_has_tuple_id(__isl_keep isl_set *set); __isl_give isl_id *isl_set_get_tuple_id( __isl_keep isl_set *set); __isl_give isl_map *isl_map_set_tuple_id( @@ -1355,6 +1358,8 @@ or relation can be read off or set using the following functions. __isl_take isl_id *id); __isl_give isl_map *isl_map_reset_tuple_id( __isl_take isl_map *map, enum isl_dim_type type); + int isl_map_has_tuple_id(__isl_keep isl_map *map, + enum isl_dim_type type); __isl_give isl_id *isl_map_get_tuple_id( __isl_keep isl_map *map, enum isl_dim_type type); diff --git a/include/isl/dim.h b/include/isl/dim.h index e6d9ad2..097bff3 100644 --- a/include/isl/dim.h +++ b/include/isl/dim.h @@ -48,6 +48,7 @@ __isl_give isl_dim *isl_dim_set_tuple_id(__isl_take isl_dim *dim, enum isl_dim_type type, __isl_take isl_id *id); __isl_give isl_dim *isl_dim_reset_tuple_id(__isl_take isl_dim *dim, enum isl_dim_type type); +int isl_dim_has_tuple_id(__isl_keep isl_dim *dim, enum isl_dim_type type); __isl_give isl_id *isl_dim_get_tuple_id(__isl_keep isl_dim *dim, enum isl_dim_type type); diff --git a/include/isl/map.h b/include/isl/map.h index e2f9b14..1e252df 100644 --- a/include/isl/map.h +++ b/include/isl/map.h @@ -94,6 +94,7 @@ __isl_give isl_map *isl_map_set_tuple_id(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_id *id); __isl_give isl_map *isl_map_reset_tuple_id(__isl_take isl_map *map, enum isl_dim_type type); +int isl_map_has_tuple_id(__isl_keep isl_map *map, enum isl_dim_type type); __isl_give isl_id *isl_map_get_tuple_id(__isl_keep isl_map *map, enum isl_dim_type type); diff --git a/include/isl/set.h b/include/isl/set.h index 01b791d..80082d8 100644 --- a/include/isl/set.h +++ b/include/isl/set.h @@ -68,6 +68,7 @@ __isl_give isl_id *isl_set_get_dim_id(__isl_keep isl_set *set, __isl_give isl_set *isl_set_set_tuple_id(__isl_take isl_set *set, __isl_take isl_id *id); __isl_give isl_set *isl_set_reset_tuple_id(__isl_take isl_set *set); +int isl_set_has_tuple_id(__isl_keep isl_set *set); __isl_give isl_id *isl_set_get_tuple_id(__isl_keep isl_set *set); int isl_set_find_dim_by_id(__isl_keep isl_set *set, enum isl_dim_type type, diff --git a/isl_dim.c b/isl_dim.c index e5cd206..b469808 100644 --- a/isl_dim.c +++ b/isl_dim.c @@ -291,6 +291,17 @@ static int name_ok(isl_ctx *ctx, const char *s) return 1; } +int isl_dim_has_tuple_id(__isl_keep isl_dim *dim, enum isl_dim_type type) +{ + if (!dim) + return -1; + if (type != isl_dim_in && type != isl_dim_out) + isl_die(dim->ctx, isl_error_invalid, + "only input, output and set tuples can have ids", + return -1); + return dim->tuple_id[type - isl_dim_in] != NULL; +} + __isl_give isl_id *isl_dim_get_tuple_id(__isl_keep isl_dim *dim, enum isl_dim_type type) { diff --git a/isl_map.c b/isl_map.c index e85e644..14732c3 100644 --- a/isl_map.c +++ b/isl_map.c @@ -433,12 +433,22 @@ __isl_give isl_set *isl_set_reset_tuple_id(__isl_take isl_set *set) return isl_map_reset_tuple_id(set, isl_dim_set); } +int isl_map_has_tuple_id(__isl_keep isl_map *map, enum isl_dim_type type) +{ + return map ? isl_dim_has_tuple_id(map->dim, type) : -1; +} + __isl_give isl_id *isl_map_get_tuple_id(__isl_keep isl_map *map, enum isl_dim_type type) { return map ? isl_dim_get_tuple_id(map->dim, type) : NULL; } +int isl_set_has_tuple_id(__isl_keep isl_set *set) +{ + return isl_map_has_tuple_id(set, isl_dim_set); +} + __isl_give isl_id *isl_set_get_tuple_id(__isl_keep isl_set *set) { return isl_map_get_tuple_id(set, isl_dim_set);