reference, declarationdefinition
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;