add isl_space_is_domain
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 30 Aug 2011 12:25:50 +0000 (14:25 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sat, 3 Sep 2011 19:43:08 +0000 (21:43 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_space.c
isl_space_private.h

index d5f62ed..5667dca 100644 (file)
@@ -1297,6 +1297,19 @@ int isl_space_is_equal(__isl_keep isl_space *dim1, __isl_keep isl_space *dim2)
               isl_space_tuple_match(dim1, isl_dim_out, dim2, isl_dim_out);
 }
 
+/* Is space1 equal to the domain of space2?
+ */
+int isl_space_is_domain(__isl_keep isl_space *space1,
+       __isl_keep isl_space *space2)
+{
+       if (!space1 || !space2)
+               return -1;
+       if (!isl_space_is_set(space1))
+               return 0;
+       return match(space1, isl_dim_param, space2, isl_dim_param) &&
+              isl_space_tuple_match(space1, isl_dim_set, space2, isl_dim_in);
+}
+
 int isl_space_compatible(__isl_keep isl_space *dim1,
        __isl_keep isl_space *dim2)
 {
index 74480d6..28cb586 100644 (file)
@@ -26,6 +26,9 @@ __isl_give isl_space *isl_space_underlying(__isl_take isl_space *dim,
 
 uint32_t isl_space_get_hash(__isl_keep isl_space *dim);
 
+int isl_space_is_domain(__isl_keep isl_space *space1,
+       __isl_keep isl_space *space2);
+
 __isl_give isl_space *isl_space_as_set_space(__isl_take isl_space *dim);
 
 unsigned isl_space_offset(__isl_keep isl_space *dim, enum isl_dim_type type);