return umap;
}
+ model = isl_dim_drop(model, isl_dim_in,
+ 0, isl_dim_size(model, isl_dim_in));
+ model = isl_dim_drop(model, isl_dim_out,
+ 0, isl_dim_size(model, isl_dim_out));
+
data.exp = isl_parameter_alignment_reordering(umap->dim, model);
if (!data.exp)
goto error;
uint32_t hash;
struct isl_hash_table_entry *entry;
+ if (!map || !umap)
+ goto error;
+
if (isl_map_plain_is_empty(map)) {
isl_map_free(map);
return umap;
}
+ if (!isl_dim_match(map->dim, isl_dim_param, umap->dim, isl_dim_param)) {
+ umap = isl_union_map_align_params(umap, isl_map_get_dim(map));
+ map = isl_map_align_params(map, isl_union_map_get_dim(umap));
+ }
+
umap = isl_union_map_cow(umap);
if (!map || !umap)
goto error;
- isl_assert(map->ctx, isl_dim_match(map->dim, isl_dim_param, umap->dim,
- isl_dim_param), goto error);
-
hash = isl_dim_get_hash(map->dim);
entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash,
&has_dim, map->dim, 1);
return -1;
}
-__isl_give isl_map *isl_union_map_copy_map(__isl_keep isl_union_map *umap)
-{
- isl_map *map = NULL;
-
- if (!umap || umap->table.n == 0)
- return NULL;
-
- isl_hash_table_foreach(umap->dim->ctx, &umap->table, ©_map, &map);
-
- return map;
-}
-
-__isl_give isl_set *isl_union_set_copy_set(__isl_keep isl_union_set *uset)
-{
- return isl_union_map_copy_map(uset);
-}
-
__isl_give isl_map *isl_map_from_union_map(__isl_take isl_union_map *umap)
{
isl_ctx *ctx;
int sv;
if (isl_union_map_n_map(umap) == 1) {
- isl_map *map = isl_union_map_copy_map(umap);
+ isl_map *map;
+ umap = isl_union_map_copy(umap);
+ map = isl_map_from_union_map(umap);
sv = isl_map_is_single_valued(map);
isl_map_free(map);
return sv;