|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
tools/polly/lib/External/isl/isl_pw_templ.c 25 __isl_give PW *FN(PW,alloc_size)(__isl_take isl_space *dim, int n)
25 __isl_give PW *FN(PW,alloc_size)(__isl_take isl_space *dim, int n)
29 struct PW *pw;
35 pw = isl_alloc(ctx, struct PW,
36 sizeof(struct PW) + (n - 1) * sizeof(S(PW,piece)));
36 sizeof(struct PW) + (n - 1) * sizeof(S(PW,piece)));
59 __isl_give PW *FN(PW,ZERO)(__isl_take isl_space *dim)
59 __isl_give PW *FN(PW,ZERO)(__isl_take isl_space *dim)
61 return FN(PW,alloc_size)(dim, 0);
65 __isl_give PW *FN(PW,add_piece)(__isl_take PW *pw,
65 __isl_give PW *FN(PW,add_piece)(__isl_take PW *pw,
65 __isl_give PW *FN(PW,add_piece)(__isl_take PW *pw,
98 FN(PW,free)(pw);
106 static isl_bool FN(PW,compatible_domain)(__isl_keep EL *el,
124 static isl_stat FN(PW,check_compatible_domain)(__isl_keep EL *el,
129 ok = FN(PW,compatible_domain)(el, set);
143 __isl_give PW *FN(PW,alloc)(__isl_take isl_set *set, __isl_take EL *el)
143 __isl_give PW *FN(PW,alloc)(__isl_take isl_set *set, __isl_take EL *el)
146 PW *pw;
148 if (FN(PW,check_compatible_domain)(el, set) < 0)
154 pw = FN(PW,alloc_size)(FN(EL,get_space)(el), 1);
157 return FN(PW,add_piece)(pw, set, el);
164 __isl_give PW *FN(PW,dup)(__isl_keep PW *pw)
164 __isl_give PW *FN(PW,dup)(__isl_keep PW *pw)
164 __isl_give PW *FN(PW,dup)(__isl_keep PW *pw)
167 PW *dup;
175 dup = FN(PW,alloc_size)(isl_space_copy(pw->dim), pw->n);
181 dup = FN(PW,add_piece)(dup, isl_set_copy(pw->p[i].set),
187 __isl_give PW *FN(PW,cow)(__isl_take PW *pw)
187 __isl_give PW *FN(PW,cow)(__isl_take PW *pw)
187 __isl_give PW *FN(PW,cow)(__isl_take PW *pw)
195 return FN(PW,dup)(pw);
198 __isl_give PW *FN(PW,copy)(__isl_keep PW *pw)
198 __isl_give PW *FN(PW,copy)(__isl_keep PW *pw)
198 __isl_give PW *FN(PW,copy)(__isl_keep PW *pw)
207 __isl_null PW *FN(PW,free)(__isl_take PW *pw)
207 __isl_null PW *FN(PW,free)(__isl_take PW *pw)
207 __isl_null PW *FN(PW,free)(__isl_take PW *pw)
226 const char *FN(PW,get_dim_name)(__isl_keep PW *pw, enum isl_dim_type type,
226 const char *FN(PW,get_dim_name)(__isl_keep PW *pw, enum isl_dim_type type,
232 isl_bool FN(PW,has_dim_id)(__isl_keep PW *pw, enum isl_dim_type type,
232 isl_bool FN(PW,has_dim_id)(__isl_keep PW *pw, enum isl_dim_type type,
238 __isl_give isl_id *FN(PW,get_dim_id)(__isl_keep PW *pw, enum isl_dim_type type,
238 __isl_give isl_id *FN(PW,get_dim_id)(__isl_keep PW *pw, enum isl_dim_type type,
244 isl_bool FN(PW,has_tuple_name)(__isl_keep PW *pw, enum isl_dim_type type)
244 isl_bool FN(PW,has_tuple_name)(__isl_keep PW *pw, enum isl_dim_type type)
249 const char *FN(PW,get_tuple_name)(__isl_keep PW *pw, enum isl_dim_type type)
249 const char *FN(PW,get_tuple_name)(__isl_keep PW *pw, enum isl_dim_type type)
254 isl_bool FN(PW,has_tuple_id)(__isl_keep PW *pw, enum isl_dim_type type)
254 isl_bool FN(PW,has_tuple_id)(__isl_keep PW *pw, enum isl_dim_type type)
259 __isl_give isl_id *FN(PW,get_tuple_id)(__isl_keep PW *pw, enum isl_dim_type type)
259 __isl_give isl_id *FN(PW,get_tuple_id)(__isl_keep PW *pw, enum isl_dim_type type)
264 isl_bool FN(PW,IS_ZERO)(__isl_keep PW *pw)
264 isl_bool FN(PW,IS_ZERO)(__isl_keep PW *pw)
273 __isl_give PW *FN(PW,realign_domain)(__isl_take PW *pw,
273 __isl_give PW *FN(PW,realign_domain)(__isl_take PW *pw,
273 __isl_give PW *FN(PW,realign_domain)(__isl_take PW *pw,
278 pw = FN(PW,cow)(pw);
293 pw = FN(PW,reset_domain_space)(pw, isl_reordering_get_space(exp));
299 FN(PW,free)(pw);
306 isl_stat FN(PW,check_named_params)(__isl_keep PW *pw)
306 isl_stat FN(PW,check_named_params)(__isl_keep PW *pw)
308 return isl_space_check_named_params(FN(PW,peek_space)(pw));
313 __isl_give PW *FN(PW,align_params)(__isl_take PW *pw, __isl_take isl_space *model)
313 __isl_give PW *FN(PW,align_params)(__isl_take PW *pw, __isl_take isl_space *model)
313 __isl_give PW *FN(PW,align_params)(__isl_take PW *pw, __isl_take isl_space *model)
325 if (FN(PW,check_named_params)(pw) < 0)
335 FN(PW,get_domain_space)(pw));
336 pw = FN(PW,realign_domain)(pw, exp);
343 FN(PW,free)(pw);
347 static __isl_give PW *FN(PW,align_params_pw_pw_and)(__isl_take PW *pw1,
347 static __isl_give PW *FN(PW,align_params_pw_pw_and)(__isl_take PW *pw1,
347 static __isl_give PW *FN(PW,align_params_pw_pw_and)(__isl_take PW *pw1,
348 __isl_take PW *pw2,
349 __isl_give PW *(*fn)(__isl_take PW *pw1, __isl_take PW *pw2))
349 __isl_give PW *(*fn)(__isl_take PW *pw1, __isl_take PW *pw2))
349 __isl_give PW *(*fn)(__isl_take PW *pw1, __isl_take PW *pw2))
360 if (FN(PW,check_named_params)(pw1) < 0 ||
361 FN(PW,check_named_params)(pw2) < 0)
363 pw1 = FN(PW,align_params)(pw1, FN(PW,get_space)(pw2));
363 pw1 = FN(PW,align_params)(pw1, FN(PW,get_space)(pw2));
364 pw2 = FN(PW,align_params)(pw2, FN(PW,get_space)(pw1));
364 pw2 = FN(PW,align_params)(pw2, FN(PW,get_space)(pw1));
367 FN(PW,free)(pw1);
368 FN(PW,free)(pw2);
372 static __isl_give PW *FN(PW,align_params_pw_set_and)(__isl_take PW *pw,
372 static __isl_give PW *FN(PW,align_params_pw_set_and)(__isl_take PW *pw,
372 static __isl_give PW *FN(PW,align_params_pw_set_and)(__isl_take PW *pw,
374 __isl_give PW *(*fn)(__isl_take PW *pw, __isl_take isl_set *set))
374 __isl_give PW *(*fn)(__isl_take PW *pw, __isl_take isl_set *set))
386 ctx = FN(PW,get_ctx)(pw);
387 if (FN(PW,check_named_params)(pw) < 0)
392 pw = FN(PW,align_params)(pw, isl_set_get_space(set));
393 set = isl_set_align_params(set, FN(PW,get_space)(pw));
396 FN(PW,free)(pw);
402 static __isl_give PW *FN(PW,union_add_aligned)(__isl_take PW *pw1,
402 static __isl_give PW *FN(PW,union_add_aligned)(__isl_take PW *pw1,
402 static __isl_give PW *FN(PW,union_add_aligned)(__isl_take PW *pw1,
403 __isl_take PW *pw2)
406 struct PW *res;
421 if (FN(PW,IS_ZERO)(pw1)) {
422 FN(PW,free)(pw1);
426 if (FN(PW,IS_ZERO)(pw2)) {
427 FN(PW,free)(pw2);
435 res = FN(PW,alloc_size)(isl_space_copy(pw1->dim), n);
456 res = FN(PW,add_piece)(res, common, sum);
458 res = FN(PW,add_piece)(res, set, FN(EL,copy)(pw1->p[i].FIELD));
466 res = FN(PW,add_piece)(res, set, FN(EL,copy)(pw2->p[j].FIELD));
469 FN(PW,free)(pw1);
470 FN(PW,free)(pw2);
474 FN(PW,free)(pw1);
475 FN(PW,free)(pw2);
482 static __isl_give PW *FN(PW,union_add_)(__isl_take PW *pw1, __isl_take PW *pw2)
482 static __isl_give PW *FN(PW,union_add_)(__isl_take PW *pw1, __isl_take PW *pw2)
482 static __isl_give PW *FN(PW,union_add_)(__isl_take PW *pw1, __isl_take PW *pw2)
482 static __isl_give PW *FN(PW,union_add_)(__isl_take PW *pw1, __isl_take PW *pw2)
484 return FN(PW,align_params_pw_pw_and)(pw1, pw2,
485 &FN(PW,union_add_aligned));
493 static __isl_give PW *FN(PW,grow)(__isl_take PW *pw, int n)
493 static __isl_give PW *FN(PW,grow)(__isl_take PW *pw, int n)
493 static __isl_give PW *FN(PW,grow)(__isl_take PW *pw, int n)
497 PW *res;
503 ctx = FN(PW,get_ctx)(pw);
506 res = isl_realloc(ctx, pw, struct PW,
507 sizeof(struct PW) + (n - 1) * sizeof(S(PW,piece)));
507 sizeof(struct PW) + (n - 1) * sizeof(S(PW,piece)));
509 return FN(PW,free)(pw);
516 res = FN(PW,alloc_size)(isl_space_copy(pw->dim), n);
519 return FN(PW,free)(pw);
521 res = FN(PW,add_piece)(res, isl_set_copy(pw->p[i].set),
523 FN(PW,free)(pw);
527 static __isl_give PW *FN(PW,add_disjoint_aligned)(__isl_take PW *pw1,
527 static __isl_give PW *FN(PW,add_disjoint_aligned)(__isl_take PW *pw1,
527 static __isl_give PW *FN(PW,add_disjoint_aligned)(__isl_take PW *pw1,
528 __isl_take PW *pw2)
537 return FN(PW,add_disjoint_aligned)(pw2, pw1);
547 if (FN(PW,IS_ZERO)(pw1)) {
548 FN(PW,free)(pw1);
552 if (FN(PW,IS_ZERO)(pw2)) {
553 FN(PW,free)(pw2);
557 pw1 = FN(PW,grow)(pw1, pw2->n);
562 pw1 = FN(PW,add_piece)(pw1,
566 FN(PW,free)(pw2);
570 FN(PW,free)(pw1);
571 FN(PW,free)(pw2);
575 __isl_give PW *FN(PW,add_disjoint)(__isl_take PW *pw1, __isl_take PW *pw2)
575 __isl_give PW *FN(PW,add_disjoint)(__isl_take PW *pw1, __isl_take PW *pw2)
575 __isl_give PW *FN(PW,add_disjoint)(__isl_take PW *pw1, __isl_take PW *pw2)
575 __isl_give PW *FN(PW,add_disjoint)(__isl_take PW *pw1, __isl_take PW *pw2)
577 return FN(PW,align_params_pw_pw_and)(pw1, pw2,
578 &FN(PW,add_disjoint_aligned));
583 static __isl_give PW *FN(PW,on_shared_domain_in)(__isl_take PW *pw1,
583 static __isl_give PW *FN(PW,on_shared_domain_in)(__isl_take PW *pw1,
583 static __isl_give PW *FN(PW,on_shared_domain_in)(__isl_take PW *pw1,
584 __isl_take PW *pw2, __isl_take isl_space *space,
591 static __isl_give PW *FN(PW,on_shared_domain_in)(__isl_take PW *pw1,
591 static __isl_give PW *FN(PW,on_shared_domain_in)(__isl_take PW *pw1,
591 static __isl_give PW *FN(PW,on_shared_domain_in)(__isl_take PW *pw1,
592 __isl_take PW *pw2, __isl_take isl_space *space,
596 PW *res = NULL;
605 res = FN(PW,alloc_size)(isl_space_copy(space), n);
629 res = FN(PW,add_piece)(res, common, res_ij);
634 FN(PW,free)(pw1);
635 FN(PW,free)(pw2);
639 FN(PW,free)(pw1);
640 FN(PW,free)(pw2);
641 FN(PW,free)(res);
647 static __isl_give PW *FN(PW,on_shared_domain)(__isl_take PW *pw1,
647 static __isl_give PW *FN(PW,on_shared_domain)(__isl_take PW *pw1,
647 static __isl_give PW *FN(PW,on_shared_domain)(__isl_take PW *pw1,
648 __isl_take PW *pw2,
655 static __isl_give PW *FN(PW,on_shared_domain)(__isl_take PW *pw1,
655 static __isl_give PW *FN(PW,on_shared_domain)(__isl_take PW *pw1,
655 static __isl_give PW *FN(PW,on_shared_domain)(__isl_take PW *pw1,
656 __isl_take PW *pw2,
665 return FN(PW,on_shared_domain_in)(pw1, pw2, space, fn);
667 FN(PW,free)(pw1);
668 FN(PW,free)(pw2);
673 __isl_give PW *FN(PW,neg)(__isl_take PW *pw)
673 __isl_give PW *FN(PW,neg)(__isl_take PW *pw)
673 __isl_give PW *FN(PW,neg)(__isl_take PW *pw)
680 if (FN(PW,IS_ZERO)(pw))
683 pw = FN(PW,cow)(pw);
690 return FN(PW,free)(pw);
706 __isl_give isl_set *FN(PW,params)(__isl_take PW *pw)
706 __isl_give isl_set *FN(PW,params)(__isl_take PW *pw)
708 return isl_set_params(FN(PW,domain)(pw));
711 __isl_give isl_set *FN(PW,domain)(__isl_take PW *pw)
711 __isl_give isl_set *FN(PW,domain)(__isl_take PW *pw)
719 dom = isl_set_empty(FN(PW,get_domain_space)(pw));
723 FN(PW,free)(pw);
733 static int FN(PW,exploit_equalities_and_remove_if_empty)(__isl_keep PW *pw,
733 static int FN(PW,exploit_equalities_and_remove_if_empty)(__isl_keep PW *pw,
762 __isl_give PW *FN(PW,from_range)(__isl_take PW *pw)
762 __isl_give PW *FN(PW,from_range)(__isl_take PW *pw)
762 __isl_give PW *FN(PW,from_range)(__isl_take PW *pw)
769 isl_die(FN(PW,get_ctx)(pw), isl_error_invalid,
770 "not living in a set space", return FN(PW,free)(pw));
772 space = FN(PW,get_space)(pw);
774 pw = FN(PW,reset_space)(pw, space);
782 __isl_give PW *FN(PW,fix_si)(__isl_take PW *pw, enum isl_dim_type type,
782 __isl_give PW *FN(PW,fix_si)(__isl_take PW *pw, enum isl_dim_type type,
782 __isl_give PW *FN(PW,fix_si)(__isl_take PW *pw, enum isl_dim_type type,
791 isl_die(FN(PW,get_ctx)(pw), isl_error_invalid,
792 "cannot fix output dimension", return FN(PW,free)(pw));
800 pw = FN(PW,cow)(pw);
802 return FN(PW,free)(pw);
806 if (FN(PW,exploit_equalities_and_remove_if_empty)(pw, i) < 0)
807 return FN(PW,free)(pw);
817 static __isl_give PW *FN(PW,restrict_domain_aligned)(__isl_take PW *pw,
817 static __isl_give PW *FN(PW,restrict_domain_aligned)(__isl_take PW *pw,
817 static __isl_give PW *FN(PW,restrict_domain_aligned)(__isl_take PW *pw,
832 pw = FN(PW,cow)(pw);
838 if (FN(PW,exploit_equalities_and_remove_if_empty)(pw, i) < 0)
846 FN(PW,free)(pw);
850 static __isl_give PW *FN(PW,intersect_domain_aligned)(__isl_take PW *pw,
850 static __isl_give PW *FN(PW,intersect_domain_aligned)(__isl_take PW *pw,
850 static __isl_give PW *FN(PW,intersect_domain_aligned)(__isl_take PW *pw,
853 return FN(PW,restrict_domain_aligned)(pw, set, &isl_set_intersect);
856 __isl_give PW *FN(PW,intersect_domain)(__isl_take PW *pw,
856 __isl_give PW *FN(PW,intersect_domain)(__isl_take PW *pw,
856 __isl_give PW *FN(PW,intersect_domain)(__isl_take PW *pw,
859 return FN(PW,align_params_pw_set_and)(pw, context,
860 &FN(PW,intersect_domain_aligned));
863 static __isl_give PW *FN(PW,intersect_params_aligned)(__isl_take PW *pw,
863 static __isl_give PW *FN(PW,intersect_params_aligned)(__isl_take PW *pw,
863 static __isl_give PW *FN(PW,intersect_params_aligned)(__isl_take PW *pw,
866 return FN(PW,restrict_domain_aligned)(pw, set,
872 __isl_give PW *FN(PW,intersect_params)(__isl_take PW *pw,
872 __isl_give PW *FN(PW,intersect_params)(__isl_take PW *pw,
872 __isl_give PW *FN(PW,intersect_params)(__isl_take PW *pw,
875 return FN(PW,align_params_pw_set_and)(pw, context,
876 &FN(PW,intersect_params_aligned));
882 static __isl_give PW *FN(PW,subtract_domain_aligned)(__isl_take PW *pw,
882 static __isl_give PW *FN(PW,subtract_domain_aligned)(__isl_take PW *pw,
882 static __isl_give PW *FN(PW,subtract_domain_aligned)(__isl_take PW *pw,
885 return FN(PW,restrict_domain_aligned)(pw, domain, &isl_set_subtract);
890 __isl_give PW *FN(PW,subtract_domain)(__isl_take PW *pw,
890 __isl_give PW *FN(PW,subtract_domain)(__isl_take PW *pw,
890 __isl_give PW *FN(PW,subtract_domain)(__isl_take PW *pw,
893 return FN(PW,align_params_pw_set_and)(pw, domain,
894 &FN(PW,subtract_domain_aligned));
904 static __isl_give PW *FN(PW,gist_last)(__isl_take PW *pw,
904 static __isl_give PW *FN(PW,gist_last)(__isl_take PW *pw,
904 static __isl_give PW *FN(PW,gist_last)(__isl_take PW *pw,
926 return FN(PW,free)(pw);
938 static __isl_give PW *FN(PW,gist_aligned)(__isl_take PW *pw,
938 static __isl_give PW *FN(PW,gist_aligned)(__isl_take PW *pw,
938 static __isl_give PW *FN(PW,gist_aligned)(__isl_take PW *pw,
970 pw = FN(PW,align_params)(pw, isl_set_get_space(context));
971 context = isl_set_align_params(context, FN(PW,get_space)(pw));
974 pw = FN(PW,cow)(pw);
985 return FN(PW,gist_last)(pw, context, fn_el);
1002 return FN(PW,gist_last)(pw, context, fn_el);
1026 FN(PW,free)(pw);
1032 static __isl_give PW *FN(PW,gist_domain_aligned)(__isl_take PW *pw,
1032 static __isl_give PW *FN(PW,gist_domain_aligned)(__isl_take PW *pw,
1032 static __isl_give PW *FN(PW,gist_domain_aligned)(__isl_take PW *pw,
1035 return FN(PW,gist_aligned)(pw, set, &FN(EL,gist),
1039 __isl_give PW *FN(PW,gist)(__isl_take PW *pw, __isl_take isl_set *context)
1039 __isl_give PW *FN(PW,gist)(__isl_take PW *pw, __isl_take isl_set *context)
1039 __isl_give PW *FN(PW,gist)(__isl_take PW *pw, __isl_take isl_set *context)
1041 return FN(PW,align_params_pw_set_and)(pw, context,
1042 &FN(PW,gist_domain_aligned));
1045 static __isl_give PW *FN(PW,gist_params_aligned)(__isl_take PW *pw,
1045 static __isl_give PW *FN(PW,gist_params_aligned)(__isl_take PW *pw,
1045 static __isl_give PW *FN(PW,gist_params_aligned)(__isl_take PW *pw,
1048 return FN(PW,gist_aligned)(pw, set, &FN(EL,gist_params),
1052 __isl_give PW *FN(PW,gist_params)(__isl_take PW *pw,
1052 __isl_give PW *FN(PW,gist_params)(__isl_take PW *pw,
1052 __isl_give PW *FN(PW,gist_params)(__isl_take PW *pw,
1055 return FN(PW,align_params_pw_set_and)(pw, context,
1056 &FN(PW,gist_params_aligned));
1065 static int FN(PW,sort_field_cmp)(const void *p1, const void *p2, void *arg)
1067 struct FN(PW,piece) const *pc1 = p1;
1068 struct FN(PW,piece) const *pc2 = p2;
1082 __isl_give PW *FN(PW,sort)(__isl_take PW *pw)
1082 __isl_give PW *FN(PW,sort)(__isl_take PW *pw)
1082 __isl_give PW *FN(PW,sort)(__isl_take PW *pw)
1092 &FN(PW,sort_field_cmp), NULL) < 0)
1093 return FN(PW,free)(pw);
1100 return FN(PW,free)(pw);
1120 __isl_give PW *FN(PW,coalesce)(__isl_take PW *pw)
1120 __isl_give PW *FN(PW,coalesce)(__isl_take PW *pw)
1120 __isl_give PW *FN(PW,coalesce)(__isl_take PW *pw)
1124 pw = FN(PW,sort)(pw);
1136 FN(PW,free)(pw);
1140 isl_ctx *FN(PW,get_ctx)(__isl_keep PW *pw)
1140 isl_ctx *FN(PW,get_ctx)(__isl_keep PW *pw)
1145 isl_bool FN(PW,involves_dims)(__isl_keep PW *pw, enum isl_dim_type type,
1145 isl_bool FN(PW,involves_dims)(__isl_keep PW *pw, enum isl_dim_type type,
1171 __isl_give PW *FN(PW,set_dim_name)(__isl_take PW *pw,
1171 __isl_give PW *FN(PW,set_dim_name)(__isl_take PW *pw,
1171 __isl_give PW *FN(PW,set_dim_name)(__isl_take PW *pw,
1177 pw = FN(PW,cow)(pw);
1199 FN(PW,free)(pw);
1203 __isl_give PW *FN(PW,drop_dims)(__isl_take PW *pw,
1203 __isl_give PW *FN(PW,drop_dims)(__isl_take PW *pw,
1203 __isl_give PW *FN(PW,drop_dims)(__isl_take PW *pw,
1216 pw = FN(PW,cow)(pw);
1235 FN(PW,free)(pw);
1244 __isl_give PW *FN(PW,project_out)(__isl_take PW *pw,
1244 __isl_give PW *FN(PW,project_out)(__isl_take PW *pw,
1244 __isl_give PW *FN(PW,project_out)(__isl_take PW *pw,
1257 pw = FN(PW,cow)(pw);
1275 FN(PW,free)(pw);
1281 __isl_give PW *FN(PW,project_domain_on_params)(__isl_take PW *pw)
1281 __isl_give PW *FN(PW,project_domain_on_params)(__isl_take PW *pw)
1281 __isl_give PW *FN(PW,project_domain_on_params)(__isl_take PW *pw)
1286 n = FN(PW,dim)(pw, isl_dim_in);
1287 pw = FN(PW,project_out)(pw, isl_dim_in, 0, n);
1288 space = FN(PW,get_domain_space)(pw);
1290 pw = FN(PW,reset_domain_space)(pw, space);
1296 __isl_give PW *FN(PW,drop_unused_params)(__isl_take PW *pw)
1296 __isl_give PW *FN(PW,drop_unused_params)(__isl_take PW *pw)
1296 __isl_give PW *FN(PW,drop_unused_params)(__isl_take PW *pw)
1300 if (FN(PW,check_named_params)(pw) < 0)
1301 return FN(PW,free)(pw);
1303 for (i = FN(PW,dim)(pw, isl_dim_param) - 1; i >= 0; i--) {
1306 involves = FN(PW,involves_dims)(pw, isl_dim_param, i, 1);
1308 return FN(PW,free)(pw);
1310 pw = FN(PW,drop_dims)(pw, isl_dim_param, i, 1);
1356 __isl_give PW *FN(PW,fix_dim)(__isl_take PW *pw,
1356 __isl_give PW *FN(PW,fix_dim)(__isl_take PW *pw,
1356 __isl_give PW *FN(PW,fix_dim)(__isl_take PW *pw,
1367 pw = FN(PW,cow)(pw);
1372 if (FN(PW,exploit_equalities_and_remove_if_empty)(pw, i) < 0)
1373 return FN(PW,free)(pw);
1382 __isl_give PW *FN(PW,fix_val)(__isl_take PW *pw,
1382 __isl_give PW *FN(PW,fix_val)(__isl_take PW *pw,
1382 __isl_give PW *FN(PW,fix_val)(__isl_take PW *pw,
1386 return FN(PW,free)(pw);
1388 isl_die(FN(PW,get_ctx)(pw), isl_error_invalid,
1391 pw = FN(PW,fix_dim)(pw, type, pos, v->n);
1397 return FN(PW,free)(pw);
1400 unsigned FN(PW,dim)(__isl_keep PW *pw, enum isl_dim_type type)
1400 unsigned FN(PW,dim)(__isl_keep PW *pw, enum isl_dim_type type)
1405 __isl_give PW *FN(PW,split_dims)(__isl_take PW *pw,
1405 __isl_give PW *FN(PW,split_dims)(__isl_take PW *pw,
1405 __isl_give PW *FN(PW,split_dims)(__isl_take PW *pw,
1418 pw = FN(PW,cow)(pw);
1431 FN(PW,free)(pw);
1484 __isl_keep isl_space *FN(PW,peek_space)(__isl_keep PW *pw)
1484 __isl_keep isl_space *FN(PW,peek_space)(__isl_keep PW *pw)
1489 __isl_give isl_space *FN(PW,get_space)(__isl_keep PW *pw)
1489 __isl_give isl_space *FN(PW,get_space)(__isl_keep PW *pw)
1491 return isl_space_copy(FN(PW,peek_space)(pw));
1494 __isl_give isl_space *FN(PW,get_domain_space)(__isl_keep PW *pw)
1494 __isl_give isl_space *FN(PW,get_domain_space)(__isl_keep PW *pw)
1503 int FN(PW,find_dim_by_name)(__isl_keep PW *pw,
1503 int FN(PW,find_dim_by_name)(__isl_keep PW *pw,
1516 static __isl_give PW *FN(PW,reset_space_and_domain)(__isl_take PW *pw,
1516 static __isl_give PW *FN(PW,reset_space_and_domain)(__isl_take PW *pw,
1516 static __isl_give PW *FN(PW,reset_space_and_domain)(__isl_take PW *pw,
1521 pw = FN(PW,cow)(pw);
1545 FN(PW,free)(pw);
1549 __isl_give PW *FN(PW,reset_domain_space)(__isl_take PW *pw,
1549 __isl_give PW *FN(PW,reset_domain_space)(__isl_take PW *pw,
1549 __isl_give PW *FN(PW,reset_domain_space)(__isl_take PW *pw,
1555 FN(PW,get_space)(pw));
1556 return FN(PW,reset_space_and_domain)(pw, space, domain);
1559 __isl_give PW *FN(PW,reset_space)(__isl_take PW *pw, __isl_take isl_space *dim)
1559 __isl_give PW *FN(PW,reset_space)(__isl_take PW *pw, __isl_take isl_space *dim)
1559 __isl_give PW *FN(PW,reset_space)(__isl_take PW *pw, __isl_take isl_space *dim)
1564 return FN(PW,reset_space_and_domain)(pw, dim, domain);
1567 __isl_give PW *FN(PW,set_tuple_id)(__isl_take PW *pw, enum isl_dim_type type,
1567 __isl_give PW *FN(PW,set_tuple_id)(__isl_take PW *pw, enum isl_dim_type type,
1567 __isl_give PW *FN(PW,set_tuple_id)(__isl_take PW *pw, enum isl_dim_type type,
1572 pw = FN(PW,cow)(pw);
1576 space = FN(PW,get_space)(pw);
1579 return FN(PW,reset_space)(pw, space);
1582 return FN(PW,free)(pw);
1587 __isl_give PW *FN(PW,reset_tuple_id)(__isl_take PW *pw, enum isl_dim_type type)
1587 __isl_give PW *FN(PW,reset_tuple_id)(__isl_take PW *pw, enum isl_dim_type type)
1587 __isl_give PW *FN(PW,reset_tuple_id)(__isl_take PW *pw, enum isl_dim_type type)
1593 if (!FN(PW,has_tuple_id)(pw, type))
1596 pw = FN(PW,cow)(pw);
1600 space = FN(PW,get_space)(pw);
1603 return FN(PW,reset_space)(pw, space);
1606 __isl_give PW *FN(PW,set_dim_id)(__isl_take PW *pw,
1606 __isl_give PW *FN(PW,set_dim_id)(__isl_take PW *pw,
1606 __isl_give PW *FN(PW,set_dim_id)(__isl_take PW *pw,
1609 pw = FN(PW,cow)(pw);
1613 return FN(PW,reset_space)(pw, isl_space_copy(pw->dim));
1616 return FN(PW,free)(pw);
1623 __isl_give PW *FN(PW,reset_user)(__isl_take PW *pw)
1623 __isl_give PW *FN(PW,reset_user)(__isl_take PW *pw)
1623 __isl_give PW *FN(PW,reset_user)(__isl_take PW *pw)
1627 space = FN(PW,get_space)(pw);
1630 return FN(PW,reset_space)(pw, space);
1633 isl_bool FN(PW,has_equal_space)(__isl_keep PW *pw1, __isl_keep PW *pw2)
1633 isl_bool FN(PW,has_equal_space)(__isl_keep PW *pw1, __isl_keep PW *pw2)
1633 isl_bool FN(PW,has_equal_space)(__isl_keep PW *pw1, __isl_keep PW *pw2)
1683 int FN(PW,n_piece)(__isl_keep PW *pw)
1683 int FN(PW,n_piece)(__isl_keep PW *pw)
1688 isl_stat FN(PW,foreach_piece)(__isl_keep PW *pw,
1688 isl_stat FN(PW,foreach_piece)(__isl_keep PW *pw,
1787 __isl_give PW *FN(PW,move_dims)(__isl_take PW *pw,
1787 __isl_give PW *FN(PW,move_dims)(__isl_take PW *pw,
1787 __isl_give PW *FN(PW,move_dims)(__isl_take PW *pw,
1793 pw = FN(PW,cow)(pw);
1823 FN(PW,free)(pw);
1828 __isl_give PW *FN(PW,mul_isl_int)(__isl_take PW *pw, isl_int v)
1828 __isl_give PW *FN(PW,mul_isl_int)(__isl_take PW *pw, isl_int v)
1828 __isl_give PW *FN(PW,mul_isl_int)(__isl_take PW *pw, isl_int v)
1835 PW *zero;
1836 isl_space *dim = FN(PW,get_space)(pw);
1840 zero = FN(PW,ZERO)(dim);
1842 FN(PW,free)(pw);
1845 pw = FN(PW,cow)(pw);
1863 FN(PW,free)(pw);
1869 __isl_give PW *FN(PW,scale_val)(__isl_take PW *pw, __isl_take isl_val *v)
1869 __isl_give PW *FN(PW,scale_val)(__isl_take PW *pw, __isl_take isl_val *v)
1869 __isl_give PW *FN(PW,scale_val)(__isl_take PW *pw, __isl_take isl_val *v)
1881 PW *zero;
1882 isl_space *space = FN(PW,get_space)(pw);
1886 zero = FN(PW,ZERO)(space);
1888 FN(PW,free)(pw);
1896 pw = FN(PW,cow)(pw);
1915 FN(PW,free)(pw);
1921 __isl_give PW *FN(PW,scale_down_val)(__isl_take PW *pw, __isl_take isl_val *v)
1921 __isl_give PW *FN(PW,scale_down_val)(__isl_take PW *pw, __isl_take isl_val *v)
1921 __isl_give PW *FN(PW,scale_down_val)(__isl_take PW *pw, __isl_take isl_val *v)
1944 pw = FN(PW,cow)(pw);
1963 FN(PW,free)(pw);
1967 __isl_give PW *FN(PW,scale)(__isl_take PW *pw, isl_int v)
1967 __isl_give PW *FN(PW,scale)(__isl_take PW *pw, isl_int v)
1967 __isl_give PW *FN(PW,scale)(__isl_take PW *pw, isl_int v)
1969 return FN(PW,mul_isl_int)(pw, v);
1981 __isl_give PW *FN(PW,normalize)(__isl_take PW *pw)
1981 __isl_give PW *FN(PW,normalize)(__isl_take PW *pw)
1981 __isl_give PW *FN(PW,normalize)(__isl_take PW *pw)
1986 pw = FN(PW,sort)(pw);
1992 return FN(PW,free)(pw);
2008 isl_bool FN(PW,plain_is_equal)(__isl_keep PW *pw1, __isl_keep PW *pw2)
2008 isl_bool FN(PW,plain_is_equal)(__isl_keep PW *pw1, __isl_keep PW *pw2)
2008 isl_bool FN(PW,plain_is_equal)(__isl_keep PW *pw1, __isl_keep PW *pw2)
2016 has_nan = FN(PW,involves_nan)(pw1);
2018 has_nan = FN(PW,involves_nan)(pw2);
2027 pw1 = FN(PW,copy)(pw1);
2028 pw2 = FN(PW,copy)(pw2);
2029 pw1 = FN(PW,normalize)(pw1);
2030 pw2 = FN(PW,normalize)(pw2);
2046 FN(PW,free)(pw1);
2047 FN(PW,free)(pw2);
2050 FN(PW,free)(pw1);
2051 FN(PW,free)(pw2);
2057 isl_bool FN(PW,involves_nan)(__isl_keep PW *pw)
2057 isl_bool FN(PW,involves_nan)(__isl_keep PW *pw)
2076 static __isl_give PW *FN(PW,align_params_pw_multi_aff_and)(__isl_take PW *pw,
2076 static __isl_give PW *FN(PW,align_params_pw_multi_aff_and)(__isl_take PW *pw,
2076 static __isl_give PW *FN(PW,align_params_pw_multi_aff_and)(__isl_take PW *pw,
2078 __isl_give PW *(*fn)(__isl_take PW *pw, __isl_take isl_multi_aff *ma))
2078 __isl_give PW *(*fn)(__isl_take PW *pw, __isl_take isl_multi_aff *ma))
2094 ctx = FN(PW,get_ctx)(pw);
2095 if (FN(PW,check_named_params)(pw) < 0)
2100 pw = FN(PW,align_params)(pw, ma_space);
2101 ma = isl_multi_aff_align_params(ma, FN(PW,get_space)(pw));
2105 FN(PW,free)(pw);
2110 static __isl_give PW *FN(PW,align_params_pw_pw_multi_aff_and)(__isl_take PW *pw,
2110 static __isl_give PW *FN(PW,align_params_pw_pw_multi_aff_and)(__isl_take PW *pw,
2110 static __isl_give PW *FN(PW,align_params_pw_pw_multi_aff_and)(__isl_take PW *pw,
2112 __isl_give PW *(*fn)(__isl_take PW *pw,
2112 __isl_give PW *(*fn)(__isl_take PW *pw,
2128 if (FN(PW,check_named_params)(pw) < 0 ||
2131 pw = FN(PW,align_params)(pw, pma_space);
2132 pma = isl_pw_multi_aff_align_params(pma, FN(PW,get_space)(pw));
2136 FN(PW,free)(pw);
2144 static __isl_give PW *FN(PW,pullback_multi_aff_aligned)(__isl_take PW *pw,
2144 static __isl_give PW *FN(PW,pullback_multi_aff_aligned)(__isl_take PW *pw,
2144 static __isl_give PW *FN(PW,pullback_multi_aff_aligned)(__isl_take PW *pw,
2151 pw = FN(PW,cow)(pw);
2156 FN(PW,get_space)(pw));
2169 pw = FN(PW,reset_space)(pw, space);
2175 FN(PW,free)(pw);
2179 __isl_give PW *FN(PW,pullback_multi_aff)(__isl_take PW *pw,
2179 __isl_give PW *FN(PW,pullback_multi_aff)(__isl_take PW *pw,
2179 __isl_give PW *FN(PW,pullback_multi_aff)(__isl_take PW *pw,
2182 return FN(PW,align_params_pw_multi_aff_and)(pw, ma,
2183 &FN(PW,pullback_multi_aff_aligned));
2189 static __isl_give PW *FN(PW,pullback_pw_multi_aff_aligned)(__isl_take PW *pw,
2189 static __isl_give PW *FN(PW,pullback_pw_multi_aff_aligned)(__isl_take PW *pw,
2189 static __isl_give PW *FN(PW,pullback_pw_multi_aff_aligned)(__isl_take PW *pw,
2193 PW *res;
2201 FN(PW,get_space)(pw));
2203 res = FN(PW,empty)(space);
2204 FN(PW,free)(pw);
2208 res = FN(PW,pullback_multi_aff)(FN(PW,copy)(pw),
2208 res = FN(PW,pullback_multi_aff)(FN(PW,copy)(pw),
2210 res = FN(PW,intersect_domain)(res, isl_set_copy(pma->p[0].set));
2213 PW *res_i;
2215 res_i = FN(PW,pullback_multi_aff)(FN(PW,copy)(pw),
2215 res_i = FN(PW,pullback_multi_aff)(FN(PW,copy)(pw),
2217 res_i = FN(PW,intersect_domain)(res_i,
2219 res = FN(PW,add_disjoint)(res, res_i);
2223 FN(PW,free)(pw);
2227 FN(PW,free)(pw);
2231 __isl_give PW *FN(PW,pullback_pw_multi_aff)(__isl_take PW *pw,
2231 __isl_give PW *FN(PW,pullback_pw_multi_aff)(__isl_take PW *pw,
2231 __isl_give PW *FN(PW,pullback_pw_multi_aff)(__isl_take PW *pw,
2234 return FN(PW,align_params_pw_pw_multi_aff_and)(pw, pma,
2235 &FN(PW,pullback_pw_multi_aff_aligned));
tools/polly/lib/External/isl/isl_pw_union_opt.c 18 static __isl_give isl_set *FN(PW,better)(__isl_keep EL *el1, __isl_keep EL *el2,
26 static __isl_give isl_set_list *FN(PW,extract_domains)(__isl_keep PW *pw)
26 static __isl_give isl_set_list *FN(PW,extract_domains)(__isl_keep PW *pw)
34 ctx = FN(PW,get_ctx)(pw);
46 static __isl_give isl_set *FN(PW,better_or_out)(__isl_take isl_set *set,
61 static __isl_give isl_set *FN(PW,worse_or_out)(__isl_take isl_set *set,
87 static __isl_give PW *FN(PW,merge)(__isl_take PW *pw1, __isl_take PW *pw2,
87 static __isl_give PW *FN(PW,merge)(__isl_take PW *pw1, __isl_take PW *pw2,
87 static __isl_give PW *FN(PW,merge)(__isl_take PW *pw1, __isl_take PW *pw2,
87 static __isl_give PW *FN(PW,merge)(__isl_take PW *pw1, __isl_take PW *pw2,
91 PW *res;
96 res = FN(PW,alloc_size)(isl_space_copy(pw1->dim), pw1->n + pw2->n);
125 res = FN(PW,add_piece)(res, set, el);
130 FN(PW,free)(pw1);
131 FN(PW,free)(pw2);
136 FN(PW,free)(pw1);
137 FN(PW,free)(pw2);
182 static __isl_give PW *FN(PW,union_opt_cmp)(
182 static __isl_give PW *FN(PW,union_opt_cmp)(
183 __isl_take PW *pw1, __isl_take PW *pw2,
183 __isl_take PW *pw1, __isl_take PW *pw2,
187 PW *res = NULL;
200 if (FN(PW,is_empty)(pw1)) {
201 FN(PW,free)(pw1);
205 if (FN(PW,is_empty)(pw2)) {
206 FN(PW,free)(pw2);
210 pw1 = FN(PW,sort)(pw1);
211 pw2 = FN(PW,sort)(pw2);
215 list1 = FN(PW,extract_domains)(pw1);
216 list2 = FN(PW,extract_domains)(pw2);
229 better = FN(PW,better)(pw2->p[j].FIELD,
233 set_i = FN(PW,worse_or_out)(set_i,
238 set_j = FN(PW,better_or_out)(set_j, better, set_i);
243 res = FN(PW,merge)(pw1, pw2, list1, list2);
249 FN(PW,free)(pw1);
250 FN(PW,free)(pw2);
252 return FN(PW,free)(res);
tools/polly/lib/External/isl/isl_union_templ.c 616 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*);
616 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*);
631 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*))
631 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*))
656 return FN(UNION,any_set_op)(u, set, &FN(PW,intersect_params));
665 return FN(UNION,any_set_op)(u, set, &FN(PW,gist_params));
671 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*);
671 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*);
718 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*))
718 __isl_give PW *(*fn)(__isl_take PW*, __isl_take isl_set*))
754 return FN(UNION,match_domain_op)(u, uset, &FN(PW,intersect_domain));
788 return FN(UNION,match_domain_op)(u, uset, &FN(PW,gist));
801 part = FN(PW,coalesce)(part);
970 PW *pw = *entry;
981 data->is_equal = FN(PW,plain_is_equal)(pw, entry2->data);
1036 PW *pw = *entry;
1038 *nan = FN(PW,involves_nan)(pw);
1173 PW *pw = *entry;