|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
tools/polly/lib/External/isl/isl_union_eval.c 16 static __isl_give isl_val *FN(UNION,eval_void)(__isl_take UNION *u,
22 FN(UNION,free)(u);
29 static int FN(UNION,has_domain_space)(const void *entry, const void *val)
41 __isl_give isl_val *FN(UNION,eval)(__isl_take UNION *u,
56 return FN(UNION,eval_void)(u, pnt);
63 hash, &FN(UNION,has_domain_space),
70 v = FN(PART,eval)(FN(PART,copy)(entry->data), pnt);
70 v = FN(PART,eval)(FN(PART,copy)(entry->data), pnt);
72 FN(UNION,free)(u);
75 FN(UNION,free)(u);
tools/polly/lib/External/isl/isl_union_multi.c 54 static isl_stat FN(UNION,call_on_group)(void **entry, void *user)
65 static isl_stat FN(UNION,foreach_group)(__isl_keep UNION *u,
75 &FN(UNION,call_on_group), &data);
82 static isl_stat FN(UNION,count_part)(__isl_keep S(UNION,group) *group,
96 int FN(FN(UNION,n),BASE)(__isl_keep UNION *u)
96 int FN(FN(UNION,n),BASE)(__isl_keep UNION *u)
101 if (FN(UNION,foreach_group)(u, &FN(UNION,count_part), &n) < 0)
101 if (FN(UNION,foreach_group)(u, &FN(UNION,count_part), &n) < 0)
109 static isl_stat FN(UNION,free_group_entry)(void **entry, void *user)
113 FN(PART,free)(part);
119 static __isl_null S(UNION,group) *FN(UNION,group_free)(
129 &FN(UNION,free_group_entry), NULL);
139 static __isl_give S(UNION,group) *FN(UNION,group_alloc)(
153 return FN(UNION,group_free)(group);
163 static int FN(UNION,has_space)(const void *entry, const void *val)
174 static __isl_give S(UNION,group) *FN(UNION,group_cow)(
186 static isl_stat FN(UNION,call_on_copy)(void **entry, void *user)
191 part = FN(PART,copy)(part);
199 static isl_stat FN(UNION,group_call_on_copy)(__isl_keep S(UNION,group) *group,
209 &FN(UNION,call_on_copy), user);
212 isl_stat FN(FN(UNION,foreach),BASE)(__isl_keep UNION *u,
212 isl_stat FN(FN(UNION,foreach),BASE)(__isl_keep UNION *u,
220 return FN(UNION,foreach_group)(u, &FN(UNION,group_call_on_copy), &data);
220 return FN(UNION,foreach_group)(u, &FN(UNION,group_call_on_copy), &data);
226 static int FN(UNION,group_has_domain_space)(const void *entry, const void *val)
244 static struct isl_hash_table_entry *FN(UNION,find_part_entry)(
255 ctx = FN(UNION,get_ctx)(u);
258 &FN(UNION,group_has_domain_space), space, reserve);
263 group = FN(UNION,group_alloc)(domain, 1);
268 group = FN(UNION,group_cow)(group);
274 &FN(UNION,has_space), space, reserve);
286 static __isl_give UNION *FN(UNION,remove_part_entry)(__isl_take UNION *u,
296 return FN(UNION,free)(u);
299 ctx = FN(UNION,get_ctx)(u);
302 &FN(UNION,group_has_domain_space), part->dim, 0);
305 return FN(UNION,free)(u));
308 FN(PART,free)(part);
314 FN(UNION,group_free)(group);
321 static isl_bool FN(UNION,disjoint_domain)(__isl_keep PART *part1,
329 dom1 = FN(PART,domain)(FN(PART,copy)(part1));
329 dom1 = FN(PART,domain)(FN(PART,copy)(part1));
330 dom2 = FN(PART,domain)(FN(PART,copy)(part2));
330 dom2 = FN(PART,domain)(FN(PART,copy)(part2));
341 static isl_stat FN(UNION,check_disjoint_domain_entry)(void **entry, void *user)
354 disjoint = FN(UNION,disjoint_domain)(part, other);
358 isl_die(FN(PART,get_ctx)(part), isl_error_invalid,
371 static isl_stat FN(UNION,check_disjoint_domain_other)(__isl_keep UNION *u,
381 ctx = FN(UNION,get_ctx)(u);
384 &FN(UNION,group_has_domain_space), part->dim, 0);
389 &FN(UNION,check_disjoint_domain_entry), part);
396 static isl_stat FN(UNION,check_disjoint_domain)(__isl_keep PART *part1,
401 disjoint = FN(UNION,disjoint_domain)(part1, part2);
405 isl_die(FN(PART,get_ctx)(part1), isl_error_invalid,
423 static isl_stat FN(UNION,group_call_inplace)(__isl_keep S(UNION,group) *group,
440 static isl_stat FN(UNION,foreach_inplace)(__isl_keep UNION *u,
445 return FN(UNION,foreach_group)(u, &FN(UNION,group_call_inplace), &data);
445 return FN(UNION,foreach_group)(u, &FN(UNION,group_call_inplace), &data);
451 static isl_bool FN(UNION,has_single_reference)(__isl_keep UNION *u)
458 static isl_stat FN(UNION,free_u_entry)(void **entry, void *user)
461 FN(UNION,group_free)(group);
tools/polly/lib/External/isl/isl_union_neg.c 15 static __isl_give PART *FN(UNION,neg_entry)(__isl_take PART *part, void *user)
17 return FN(PART,neg)(part);
22 __isl_give UNION *FN(UNION,neg)(__isl_take UNION *u)
24 return FN(UNION,transform_inplace)(u, &FN(UNION,neg_entry), NULL);
24 return FN(UNION,transform_inplace)(u, &FN(UNION,neg_entry), NULL);
tools/polly/lib/External/isl/isl_union_single.c 32 int FN(FN(UNION,n),BASE)(__isl_keep UNION *u)
32 int FN(FN(UNION,n),BASE)(__isl_keep UNION *u)
43 static isl_stat FN(UNION,call_on_copy)(void **entry, void *user)
48 part = FN(PART,copy)(part);
54 isl_stat FN(FN(UNION,foreach),BASE)(__isl_keep UNION *u,
54 isl_stat FN(FN(UNION,foreach),BASE)(__isl_keep UNION *u,
63 &FN(UNION,call_on_copy), &data);
68 static int FN(UNION,has_same_domain_space)(const void *entry, const void *val)
89 static struct isl_hash_table_entry *FN(UNION,find_part_entry)(
101 ctx = FN(UNION,get_ctx)(u);
104 &FN(UNION,has_same_domain_space), space, reserve);
118 isl_die(FN(UNION,get_ctx)(u), isl_error_invalid,
125 static __isl_give UNION *FN(UNION,remove_part_entry)(__isl_take UNION *u,
131 return FN(UNION,free)(u);
133 ctx = FN(UNION,get_ctx)(u);
135 FN(PART,free)(part_entry->data);
147 static isl_stat FN(UNION,check_disjoint_domain_other)(__isl_keep UNION *u,
159 static isl_stat FN(UNION,check_disjoint_domain)(__isl_keep PART *part1,
162 isl_die(FN(PART,get_ctx)(part1), isl_error_invalid,
169 static isl_stat FN(UNION,foreach_inplace)(__isl_keep UNION *u,
176 ctx = FN(UNION,get_ctx)(u);
183 static isl_bool FN(UNION,has_single_reference)(__isl_keep UNION *u)
190 static isl_stat FN(UNION,free_u_entry)(void **entry, void *user)
193 FN(PART,free)(part);
tools/polly/lib/External/isl/isl_union_templ.c 13 __isl_give UNION *FN(UNION,cow)(__isl_take UNION *u);
15 isl_ctx *FN(UNION,get_ctx)(__isl_keep UNION *u)
22 static __isl_keep isl_space *FN(UNION,peek_space)(__isl_keep UNION *u)
31 __isl_give isl_space *FN(UNION,get_space)(__isl_keep UNION *u)
33 return isl_space_copy(FN(UNION,peek_space)(u));
39 unsigned FN(UNION,dim)(__isl_keep UNION *u, enum isl_dim_type type)
45 isl_die(FN(UNION,get_ctx)(u), isl_error_invalid,
55 int FN(UNION,find_dim_by_name)(__isl_keep UNION *u, enum isl_dim_type type,
64 static __isl_give UNION *FN(UNION,alloc)(__isl_take isl_space *dim,
67 static __isl_give UNION *FN(UNION,alloc)(__isl_take isl_space *dim, int size)
86 return FN(UNION,free)(u);
95 __isl_give UNION *FN(UNION,ZERO)(__isl_take isl_space *dim, enum isl_fold type)
97 return FN(UNION,alloc)(dim, type, 16);
100 __isl_give UNION *FN(UNION,ZERO)(__isl_take isl_space *dim)
102 return FN(UNION,alloc)(dim, 16);
106 __isl_give UNION *FN(UNION,copy)(__isl_keep UNION *u)
120 __isl_give PART *FN(FN(UNION,extract),BASE)(__isl_keep UNION *u,
120 __isl_give PART *FN(FN(UNION,extract),BASE)(__isl_keep UNION *u,
125 space = isl_space_replace_params(space, FN(UNION,peek_space)(u));
127 entry = FN(UNION,find_part_entry)(u, space, 0);
132 return FN(PART,ZERO)(space, u->type);
134 return FN(PART,ZERO)(space);
137 return FN(PART,copy)(entry->data);
150 static __isl_give UNION *FN(UNION,add_part_generic)(__isl_take UNION *u,
159 empty = FN(PART,IS_ZERO)(part);
163 FN(PART,free)(part);
167 u = FN(UNION,align_params)(u, FN(PART,get_space)(part));
167 u = FN(UNION,align_params)(u, FN(PART,get_space)(part));
168 part = FN(PART,align_params)(part, FN(UNION,get_space)(u));
168 part = FN(PART,align_params)(part, FN(UNION,get_space)(u));
170 u = FN(UNION,cow)(u);
175 if (FN(UNION,check_disjoint_domain_other)(u, part) < 0)
177 entry = FN(UNION,find_part_entry)(u, part->dim, 1);
185 FN(UNION,check_disjoint_domain)(entry->data, part) < 0)
187 entry->data = FN(PART,union_add_)(entry->data,
188 FN(PART,copy)(part));
191 empty = FN(PART,IS_ZERO)(part);
195 u = FN(UNION,remove_part_entry)(u, entry);
196 FN(PART,free)(part);
201 FN(PART,free)(part);
202 FN(UNION,free)(u);
209 __isl_give UNION *FN(FN(UNION,add),BASE)(__isl_take UNION *u,
209 __isl_give UNION *FN(FN(UNION,add),BASE)(__isl_take UNION *u,
212 return FN(UNION,add_part_generic)(u, part, 1);
219 static __isl_give UNION *FN(UNION,alloc_same_size_on_space)(__isl_keep UNION *u,
224 return FN(UNION,alloc)(space, u->type, u->table.n);
232 static __isl_give UNION *FN(UNION,alloc_same_size_on_space)(__isl_keep UNION *u,
237 return FN(UNION,alloc)(space, u->table.n);
247 static __isl_give UNION *FN(UNION,alloc_same_size)(__isl_keep UNION *u)
249 return FN(UNION,alloc_same_size_on_space)(u, FN(UNION,get_space)(u));
249 return FN(UNION,alloc_same_size_on_space)(u, FN(UNION,get_space)(u));
266 static isl_stat FN(UNION,transform_entry)(__isl_take PART *part, void *user)
271 data->res = FN(FN(UNION,add),BASE)(data->res, part);
271 data->res = FN(FN(UNION,add),BASE)(data->res, part);
281 static __isl_give UNION *FN(UNION,transform_space)(__isl_take UNION *u,
287 data.res = FN(UNION,alloc_same_size_on_space)(u, space);
288 if (FN(FN(UNION,foreach),BASE)(u,
288 if (FN(FN(UNION,foreach),BASE)(u,
289 &FN(UNION,transform_entry), &data) < 0)
290 data.res = FN(UNION,free)(data.res);
291 FN(UNION,free)(u);
298 static __isl_give UNION *FN(UNION,transform)(__isl_take UNION *u,
301 return FN(UNION,transform_space)(u, FN(UNION,get_space)(u), fn, user);
301 return FN(UNION,transform_space)(u, FN(UNION,get_space)(u), fn, user);
306 static isl_stat FN(UNION,transform_inplace_entry)(void **part, void *user)
323 static __isl_give UNION *FN(UNION,transform_inplace)(__isl_take UNION *u,
328 single_ref = FN(UNION,has_single_reference)(u);
330 return FN(UNION,free)(u);
333 if (FN(UNION,foreach_inplace)(u,
334 &FN(UNION,transform_inplace_entry), &data) < 0)
335 return FN(UNION,free)(u);
338 return FN(UNION,transform)(u, fn, user);
344 static __isl_give PART *FN(UNION,copy_part)(__isl_take PART *part, void *user)
349 __isl_give UNION *FN(UNION,dup)(__isl_keep UNION *u)
351 u = FN(UNION,copy)(u);
352 return FN(UNION,transform)(u, &FN(UNION,copy_part), NULL);
352 return FN(UNION,transform)(u, &FN(UNION,copy_part), NULL);
355 __isl_give UNION *FN(UNION,cow)(__isl_take UNION *u)
363 return FN(UNION,dup)(u);
366 __isl_null UNION *FN(UNION,free)(__isl_take UNION *u)
375 &FN(UNION,free_u_entry), NULL);
382 static __isl_give PART *FN(UNION,align_entry)(__isl_take PART *part, void *user)
387 FN(PART,get_domain_space)(part));
388 return FN(PART,realign_domain)(part, exp);
393 static __isl_give UNION *FN(UNION,realign_domain)(__isl_take UNION *u,
402 u = FN(UNION,transform_space)(u, space, &FN(UNION,align_entry), r);
402 u = FN(UNION,transform_space)(u, space, &FN(UNION,align_entry), r);
406 FN(UNION,free)(u);
413 __isl_give UNION *FN(UNION,align_params)(__isl_take UNION *u,
433 return FN(UNION,realign_domain)(u, r);
436 FN(UNION,free)(u);
443 static isl_stat FN(UNION,union_add_part)(__isl_take PART *part, void *user)
447 *u = FN(UNION,add_part_generic)(*u, part, 0);
462 static __isl_give UNION *FN(UNION,union_add_)(__isl_take UNION *u1,
465 u1 = FN(UNION,align_params)(u1, FN(UNION,get_space)(u2));
465 u1 = FN(UNION,align_params)(u1, FN(UNION,get_space)(u2));
466 u2 = FN(UNION,align_params)(u2, FN(UNION,get_space)(u1));
466 u2 = FN(UNION,align_params)(u2, FN(UNION,get_space)(u1));
468 u1 = FN(UNION,cow)(u1);
473 if (FN(FN(UNION,foreach),BASE)(u2, &FN(UNION,union_add_part), &u1) < 0)
473 if (FN(FN(UNION,foreach),BASE)(u2, &FN(UNION,union_add_part), &u1) < 0)
473 if (FN(FN(UNION,foreach),BASE)(u2, &FN(UNION,union_add_part), &u1) < 0)
476 FN(UNION,free)(u2);
480 FN(UNION,free)(u1);
481 FN(UNION,free)(u2);
485 __isl_give UNION *FN(FN(UNION,from),BASE)(__isl_take PART *part)
485 __isl_give UNION *FN(FN(UNION,from),BASE)(__isl_take PART *part)
493 dim = FN(PART,get_space)(part);
497 u = FN(UNION,ZERO)(dim, part->type);
499 u = FN(UNION,ZERO)(dim);
501 u = FN(FN(UNION,add),BASE)(u, part);
501 u = FN(FN(UNION,add),BASE)(u, part);
516 static isl_stat FN(UNION,match_bin_entry)(__isl_take PART *part, void *user)
523 space = FN(PART,get_space)(part);
524 entry2 = FN(UNION,find_part_entry)(data->u2, space, 0);
529 FN(PART,free)(part);
536 isl_die(FN(UNION,get_ctx)(data->u2), isl_error_invalid,
540 part = data->fn(part, FN(PART, copy)(entry2->data));
542 data->res = FN(FN(UNION,add),BASE)(data->res, part);
542 data->res = FN(FN(UNION,add),BASE)(data->res, part);
548 FN(PART,free)(part);
555 static __isl_give UNION *FN(UNION,match_bin_op)(__isl_take UNION *u1,
562 static __isl_give UNION *FN(UNION,match_bin_op)(__isl_take UNION *u1,
568 u1 = FN(UNION,align_params)(u1, FN(UNION,get_space)(u2));
568 u1 = FN(UNION,align_params)(u1, FN(UNION,get_space)(u2));
569 u2 = FN(UNION,align_params)(u2, FN(UNION,get_space)(u1));
569 u2 = FN(UNION,align_params)(u2, FN(UNION,get_space)(u1));
575 data.res = FN(UNION,alloc_same_size)(u1);
576 if (FN(FN(UNION,foreach),BASE)(u1,
576 if (FN(FN(UNION,foreach),BASE)(u1,
577 &FN(UNION,match_bin_entry), &data) < 0)
580 FN(UNION,free)(u1);
581 FN(UNION,free)(u2);
584 FN(UNION,free)(u1);
585 FN(UNION,free)(u2);
586 FN(UNION,free)(data.res);
596 __isl_give UNION *FN(UNION,add)(__isl_take UNION *u1, __isl_take UNION *u2)
599 return FN(UNION,union_add_)(u1, u2);
601 return FN(UNION,match_bin_op)(u1, u2, &FN(PART,add));
601 return FN(UNION,match_bin_op)(u1, u2, &FN(PART,add));
608 __isl_give UNION *FN(UNION,sub)(__isl_take UNION *u1, __isl_take UNION *u2)
610 return FN(UNION,match_bin_op)(u1, u2, &FN(PART,sub));
610 return FN(UNION,match_bin_op)(u1, u2, &FN(PART,sub));
619 static __isl_give PART *FN(UNION,any_set_entry)(__isl_take PART *part,
629 static __isl_give UNION *FN(UNION,any_set_op)(__isl_take UNION *u,
635 u = FN(UNION,align_params)(u, isl_set_get_space(set));
636 set = isl_set_align_params(set, FN(UNION,get_space)(u));
642 u = FN(UNION,transform)(u, &FN(UNION,any_set_entry), &data);
642 u = FN(UNION,transform)(u, &FN(UNION,any_set_entry), &data);
646 FN(UNION,free)(u);
653 __isl_give UNION *FN(UNION,intersect_params)(__isl_take UNION *u,
656 return FN(UNION,any_set_op)(u, set, &FN(PW,intersect_params));
656 return FN(UNION,any_set_op)(u, set, &FN(PW,intersect_params));
662 __isl_give UNION *FN(UNION,gist_params)(__isl_take UNION *u,
665 return FN(UNION,any_set_op)(u, set, &FN(PW,gist_params));
665 return FN(UNION,any_set_op)(u, set, &FN(PW,gist_params));
674 static int FN(UNION,set_has_dim)(const void *entry, const void *val)
686 static isl_stat FN(UNION,match_domain_entry)(__isl_take PART *part, void *user)
693 space = FN(PART,get_domain_space)(part);
696 hash, &FN(UNION,set_has_dim), space, 0);
699 FN(PART,free)(part);
705 data->res = FN(FN(UNION,add),BASE)(data->res, part);
705 data->res = FN(FN(UNION,add),BASE)(data->res, part);
716 static __isl_give UNION *FN(UNION,match_domain_op)(__isl_take UNION *u,
722 u = FN(UNION,align_params)(u, isl_union_set_get_space(uset));
723 uset = isl_union_set_align_params(uset, FN(UNION,get_space)(u));
729 data.res = FN(UNION,alloc_same_size)(u);
730 if (FN(FN(UNION,foreach),BASE)(u,
730 if (FN(FN(UNION,foreach),BASE)(u,
731 &FN(UNION,match_domain_entry), &data) < 0)
734 FN(UNION,free)(u);
738 FN(UNION,free)(u);
740 FN(UNION,free)(data.res);
748 __isl_give UNION *FN(UNION,intersect_domain)(__isl_take UNION *u,
752 return FN(UNION,intersect_params)(u,
754 return FN(UNION,match_domain_op)(u, uset, &FN(PW,intersect_domain));
754 return FN(UNION,match_domain_op)(u, uset, &FN(PW,intersect_domain));
761 static __isl_give PART *FN(UNION,subtract_domain_entry)(__isl_take PART *part,
768 space = FN(PART,get_domain_space)(part);
770 return FN(PART,subtract_domain)(part, set);
775 __isl_give UNION *FN(UNION,subtract_domain)(__isl_take UNION *u,
778 u = FN(UNION,transform)(u, &FN(UNION,subtract_domain_entry), uset);
778 u = FN(UNION,transform)(u, &FN(UNION,subtract_domain_entry), uset);
783 __isl_give UNION *FN(UNION,gist)(__isl_take UNION *u,
787 return FN(UNION,gist_params)(u, isl_set_from_union_set(uset));
788 return FN(UNION,match_domain_op)(u, uset, &FN(PW,gist));
788 return FN(UNION,match_domain_op)(u, uset, &FN(PW,gist));
795 static isl_stat FN(UNION,coalesce_entry)(void **entry, void *user)
800 part = FN(PART,copy)(*part_p);
801 part = FN(PW,coalesce)(part);
804 FN(PART,free)(*part_p);
810 __isl_give UNION *FN(UNION,coalesce)(__isl_take UNION *u)
812 if (FN(UNION,foreach_inplace)(u, &FN(UNION,coalesce_entry), NULL) < 0)
812 if (FN(UNION,foreach_inplace)(u, &FN(UNION,coalesce_entry), NULL) < 0)
817 FN(UNION,free)(u);
821 static isl_stat FN(UNION,domain_entry)(__isl_take PART *part, void *user)
825 *uset = isl_union_set_add_set(*uset, FN(PART,domain)(part));
830 __isl_give isl_union_set *FN(UNION,domain)(__isl_take UNION *u)
834 uset = isl_union_set_empty(FN(UNION,get_space)(u));
835 if (FN(FN(UNION,foreach),BASE)(u, &FN(UNION,domain_entry), &uset) < 0)
835 if (FN(FN(UNION,foreach),BASE)(u, &FN(UNION,domain_entry), &uset) < 0)
835 if (FN(FN(UNION,foreach),BASE)(u, &FN(UNION,domain_entry), &uset) < 0)
838 FN(UNION,free)(u);
843 FN(UNION,free)(u);
850 static __isl_give UNION *FN(UNION,negate_type)(__isl_take UNION *u)
852 u = FN(UNION,cow)(u);
862 static __isl_give UNION *FN(UNION,negate_type)(__isl_take UNION *u)
870 static __isl_give PART *FN(UNION,scale_val_entry)(__isl_take PART *part,
875 return FN(PART,scale_val)(part, isl_val_copy(v));
880 __isl_give UNION *FN(UNION,scale_val)(__isl_take UNION *u,
892 isl_space *space = FN(UNION,get_space)(u);
894 zero = FN(UNION,ZERO)(space, u->type);
896 zero = FN(UNION,ZERO)(space);
898 FN(UNION,free)(u);
907 u = FN(UNION,transform_inplace)(u, &FN(UNION,scale_val_entry), v);
907 u = FN(UNION,transform_inplace)(u, &FN(UNION,scale_val_entry), v);
909 u = FN(UNION,negate_type)(u);
915 FN(UNION,free)(u);
921 static __isl_give PART *FN(UNION,scale_down_val_entry)(__isl_take PART *part,
926 return FN(PART,scale_down_val)(part, isl_val_copy(v));
931 __isl_give UNION *FN(UNION,scale_down_val)(__isl_take UNION *u,
948 u = FN(UNION,transform_inplace)(u, &FN(UNION,scale_down_val_entry), v);
948 u = FN(UNION,transform_inplace)(u, &FN(UNION,scale_down_val_entry), v);
950 u = FN(UNION,negate_type)(u);
956 FN(UNION,free)(u);
966 static isl_stat FN(UNION,plain_is_equal_entry)(void **entry, void *user)
972 entry2 = FN(UNION,find_part_entry)(data->u2, pw->dim, 0);
981 data->is_equal = FN(PW,plain_is_equal)(pw, entry2->data);
988 isl_bool FN(UNION,plain_is_equal)(__isl_keep UNION *u1, __isl_keep UNION *u2)
999 n1 = FN(FN(UNION,n),BASE)(u1);
999 n1 = FN(FN(UNION,n),BASE)(u1);
1000 n2 = FN(FN(UNION,n),BASE)(u2);
1000 n2 = FN(FN(UNION,n),BASE)(u2);
1006 u1 = FN(UNION,copy)(u1);
1007 u2 = FN(UNION,copy)(u2);
1008 u1 = FN(UNION,align_params)(u1, FN(UNION,get_space)(u2));
1008 u1 = FN(UNION,align_params)(u1, FN(UNION,get_space)(u2));
1009 u2 = FN(UNION,align_params)(u2, FN(UNION,get_space)(u1));
1009 u2 = FN(UNION,align_params)(u2, FN(UNION,get_space)(u1));
1014 if (FN(UNION,foreach_inplace)(u1,
1015 &FN(UNION,plain_is_equal_entry), &data) < 0 &&
1019 FN(UNION,free)(u1);
1020 FN(UNION,free)(u2);
1024 FN(UNION,free)(u1);
1025 FN(UNION,free)(u2);
1033 static isl_stat FN(UNION,involves_nan_entry)(void **entry, void *user)
1038 *nan = FN(PW,involves_nan)(pw);
1047 isl_bool FN(UNION,involves_nan)(__isl_keep UNION *u)
1054 if (FN(UNION,foreach_inplace)(u,
1055 &FN(UNION,involves_nan_entry), &nan) < 0 &&
1073 static __isl_give PART *FN(UNION,drop_dims_entry)(__isl_take PART *part,
1078 return FN(PART,drop_dims)(part, data->type, data->first, data->n);
1084 __isl_give UNION *FN(UNION,drop_dims)( __isl_take UNION *u,
1094 isl_die(FN(UNION,get_ctx)(u), isl_error_invalid,
1096 return FN(UNION,free)(u));
1098 space = FN(UNION,get_space)(u);
1100 return FN(UNION,transform_space)(u, space, &FN(UNION,drop_dims_entry),
1100 return FN(UNION,transform_space)(u, space, &FN(UNION,drop_dims_entry),
1116 static __isl_give PART *FN(UNION,set_dim_name_entry)(__isl_take PART *part,
1121 return FN(PART,set_dim_name)(part, isl_dim_param, data->pos, data->s);
1127 __isl_give UNION *FN(UNION,set_dim_name)(__isl_take UNION *u,
1137 isl_die(FN(UNION,get_ctx)(u), isl_error_invalid,
1139 return FN(UNION,free)(u));
1141 space = FN(UNION,get_space)(u);
1143 return FN(UNION,transform_space)(u, space,
1144 &FN(UNION,set_dim_name_entry), &data);
1150 static __isl_give PART *FN(UNION,reset_user_entry)(__isl_take PART *part,
1153 return FN(PART,reset_user)(part);
1159 __isl_give UNION *FN(UNION,reset_user)(__isl_take UNION *u)
1163 space = FN(UNION,get_space)(u);
1165 return FN(UNION,transform_space)(u, space, &FN(UNION,reset_user_entry),
1165 return FN(UNION,transform_space)(u, space, &FN(UNION,reset_user_entry),
1171 static isl_stat FN(UNION,add_to_list)(void **entry, void *user)
1176 *list = FN(LIST(PART),add)(*list, FN(PART,copy)(pw));
1176 *list = FN(LIST(PART),add)(*list, FN(PART,copy)(pw));
1188 __isl_give LIST(PART) *FN(FN(UNION,get),LIST(BASE))(__isl_keep UNION *u)
1188 __isl_give LIST(PART) *FN(FN(UNION,get),LIST(BASE))(__isl_keep UNION *u)
1195 n = FN(FN(UNION,n),BASE)(u);
1195 n = FN(FN(UNION,n),BASE)(u);
1198 list = FN(LIST(PART),alloc)(FN(UNION,get_ctx(u)), n);
1198 list = FN(LIST(PART),alloc)(FN(UNION,get_ctx(u)), n);
1199 if (FN(UNION,foreach_inplace)(u, &FN(UNION,add_to_list), &list) < 0)
1199 if (FN(UNION,foreach_inplace)(u, &FN(UNION,add_to_list), &list) < 0)
1200 return FN(LIST(PART),free)(list);