|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
tools/polly/lib/External/isl/isl_multi_align_templ.c 12 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),align_params),ALIGN_DOMBASE)(
12 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),align_params),ALIGN_DOMBASE)(
21 aligned = FN(ALIGN_DOM,space_has_equal_params)(domain, multi->space);
27 dom_space = FN(ALIGN_DOM,peek_space)(domain);
34 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
36 multi = FN(MULTI(BASE),align_params)(multi,
37 FN(ALIGN_DOM,get_space)(domain));
38 domain = FN(ALIGN_DOM,align_params)(domain,
39 FN(MULTI(BASE),get_space)(multi));
42 FN(MULTI(BASE),free)(multi);
43 FN(ALIGN_DOM,free)(domain);
tools/polly/lib/External/isl/isl_multi_apply_templ.c 18 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(
18 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(
28 FN(APPLY_DOM,free)(set);
32 multi = FN(MULTI(BASE),cow)(multi);
37 multi->u.p[i] = fn(multi->u.p[i], FN(APPLY_DOM,copy)(set));
42 FN(APPLY_DOM,free)(set);
45 FN(APPLY_DOM,free)(set);
46 FN(MULTI(BASE),free)(multi);
55 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply),APPLY_DOMBASE)(
55 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply),APPLY_DOMBASE)(
65 aligned = FN(APPLY_DOM,space_has_equal_params)(set, multi->space);
69 return FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(multi,
69 return FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(multi,
71 ctx = FN(MULTI(BASE),get_ctx)(multi);
76 multi = FN(MULTI(BASE),align_params)(multi,
77 FN(APPLY_DOM,get_space)(set));
78 set = FN(APPLY_DOM,align_params)(set, FN(MULTI(BASE),get_space)(multi));
78 set = FN(APPLY_DOM,align_params)(set, FN(MULTI(BASE),get_space)(multi));
79 return FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(multi, set, fn);
79 return FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(multi, set, fn);
81 FN(MULTI(BASE),free)(multi);
82 FN(APPLY_DOM,free)(set);
tools/polly/lib/External/isl/isl_multi_cmp.c 16 int FN(MULTI(BASE),plain_cmp)(__isl_keep MULTI(BASE) *multi1,
34 cmp = FN(EL,plain_cmp)(multi1->u.p[i], multi2->u.p[i]);
tools/polly/lib/External/isl/isl_multi_coalesce.c 18 __isl_give MULTI(BASE) *FN(MULTI(BASE),coalesce)(__isl_take MULTI(BASE) *multi)
26 EL *el = FN(EL,copy)(multi->u.p[i]);
27 el = FN(EL,coalesce)(el);
29 return FN(MULTI(BASE),free)(multi);
30 FN(EL,free)(multi->u.p[i]);
tools/polly/lib/External/isl/isl_multi_dims.c 19 isl_bool FN(MULTI(BASE),involves_dims)(__isl_keep MULTI(BASE) *multi,
32 involves = FN(EL,involves_dims)(multi->u.p[i], type, first, n);
37 if (FN(MULTI(BASE),has_explicit_domain)(multi))
38 return FN(MULTI(BASE),involves_explicit_domain_dims)(multi,
44 __isl_give MULTI(BASE) *FN(MULTI(BASE),insert_dims)(
53 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
55 return FN(MULTI(BASE),free)(multi));
59 multi = FN(MULTI(BASE),cow)(multi);
65 return FN(MULTI(BASE),free)(multi);
66 if (FN(MULTI(BASE),has_explicit_domain)(multi))
67 multi = FN(MULTI(BASE),insert_explicit_domain_dims)(multi,
73 multi->u.p[i] = FN(EL,insert_dims)(multi->u.p[i],
76 return FN(MULTI(BASE),free)(multi);
82 __isl_give MULTI(BASE) *FN(MULTI(BASE),add_dims)(__isl_take MULTI(BASE) *multi,
87 pos = FN(MULTI(BASE),dim)(multi, type);
89 return FN(MULTI(BASE),insert_dims)(multi, type, pos, n);
95 __isl_give MULTI(BASE) *FN(MULTI(BASE),project_domain_on_params)(
102 n = FN(MULTI(BASE),dim)(multi, isl_dim_in);
103 involves = FN(MULTI(BASE),involves_dims)(multi, isl_dim_in, 0, n);
105 return FN(MULTI(BASE),free)(multi);
107 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
109 return FN(MULTI(BASE),free)(multi));
110 multi = FN(MULTI(BASE),drop_dims)(multi, isl_dim_in, 0, n);
111 space = FN(MULTI(BASE),get_domain_space)(multi);
113 multi = FN(MULTI(BASE),reset_domain_space)(multi, space);
tools/polly/lib/External/isl/isl_multi_explicit_domain.c 15 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi);
21 static int FN(MULTI(BASE),has_explicit_domain)(__isl_keep MULTI(BASE) *multi)
28 static isl_stat FN(MULTI(BASE),check_has_explicit_domain)(
33 if (!FN(MULTI(BASE),has_explicit_domain)(multi))
34 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_internal,
42 static __isl_keep DOM *FN(MULTI(BASE),peek_explicit_domain)(
45 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
52 static __isl_give DOM *FN(MULTI(BASE),get_explicit_domain)(
55 return FN(DOM,copy)(FN(MULTI(BASE),peek_explicit_domain)(multi));
55 return FN(DOM,copy)(FN(MULTI(BASE),peek_explicit_domain)(multi));
60 static __isl_give MULTI(BASE) *FN(MULTI(BASE),set_explicit_domain)(
63 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
65 multi = FN(MULTI(BASE),cow)(multi);
68 FN(DOM,free)(multi->u.dom);
71 return FN(MULTI(BASE),free)(multi);
74 FN(MULTI(BASE),free)(multi);
75 FN(DOM,free)(dom);
86 static __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_explicit_domain)(
92 dom = FN(MULTI(BASE),peek_explicit_domain)(src);
93 is_params = FN(DOM,is_params)(dom);
95 return FN(MULTI(BASE),free)(dst);
97 dom = FN(DOM,copy)(dom);
99 dst = FN(MULTI(BASE),intersect_domain)(dst, dom);
103 params = FN(DOM,params)(dom);
104 dst = FN(MULTI(BASE),intersect_params)(dst, params);
112 static __isl_give MULTI(BASE) *FN(MULTI(BASE),copy_explicit_domain)(
117 dom = FN(MULTI(BASE),get_explicit_domain)(src);
118 dst = FN(MULTI(BASE),set_explicit_domain)(dst, dom);
125 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_explicit_domain_params)(
130 dom = FN(MULTI(BASE),get_explicit_domain)(multi);
131 dom = FN(DOM,align_params)(dom, space);
132 multi = FN(MULTI(BASE),set_explicit_domain)(multi, dom);
140 static __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_explicit_domain_space)(
145 dom = FN(MULTI(BASE),get_explicit_domain)(multi);
146 dom = FN(DOM,reset_equal_dim_space)(dom, space);
147 multi = FN(MULTI(BASE),set_explicit_domain)(multi, dom);
154 static void FN(MULTI(BASE),free_explicit_domain)(__isl_keep MULTI(BASE) *multi)
156 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
158 FN(DOM,free)(multi->u.dom);
163 static isl_bool FN(MULTI(BASE),equal_explicit_domain)(
169 if (FN(MULTI(BASE),check_has_explicit_domain)(multi1) < 0 ||
170 FN(MULTI(BASE),check_has_explicit_domain)(multi2) < 0)
172 dom1 = FN(MULTI(BASE),get_explicit_domain)(multi1);
173 dom2 = FN(MULTI(BASE),get_explicit_domain)(multi2);
174 equal = FN(DOM,is_equal)(dom1, dom2);
175 FN(DOM,free)(dom1);
176 FN(DOM,free)(dom2);
181 static isl_stat FN(MULTI(BASE),check_explicit_domain)(
187 isl_stat FN(MULTI(BASE),check_explicit_domain)(__isl_keep MULTI(BASE) *multi)
192 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
195 space2 = FN(DOM,get_space)(multi->u.dom);
202 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_internal,
tools/polly/lib/External/isl/isl_multi_floor.c 14 __isl_give MULTI(BASE) *FN(MULTI(BASE),floor)(__isl_take MULTI(BASE) *multi)
18 multi = FN(MULTI(BASE),cow)(multi);
23 multi->u.p[i] = FN(EL,floor)(multi->u.p[i]);
25 return FN(MULTI(BASE),free)(multi);
tools/polly/lib/External/isl/isl_multi_gist.c 16 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist)(__isl_take MULTI(BASE) *multi,
19 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, context, &FN(EL,gist));
19 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, context, &FN(EL,gist));
19 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, context, &FN(EL,gist));
25 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist_params)(
28 return FN(MULTI(BASE),apply_set)(multi, context, &FN(EL,gist_params));
28 return FN(MULTI(BASE),apply_set)(multi, context, &FN(EL,gist_params));
tools/polly/lib/External/isl/isl_multi_hash.c 14 uint32_t FN(MULTI(BASE),get_hash)(__isl_keep MULTI(BASE) *multi)
25 el_hash = FN(EL,get_hash)(multi->u.p[i]);
tools/polly/lib/External/isl/isl_multi_intersect.c 16 static isl_bool FN(MULTI(BASE),compatible_domain)(
22 domain_space = FN(DOM,get_space)(domain);
23 space = FN(MULTI(BASE),get_space)(multi);
34 static isl_stat FN(MULTI(BASE),check_compatible_domain)(
39 ok = FN(MULTI(BASE),compatible_domain)(multi, domain);
43 isl_die(FN(DOM,get_ctx)(domain), isl_error_invalid,
59 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_aligned)(
65 if (FN(MULTI(BASE),check_compatible_domain)(multi, domain) < 0)
67 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
69 is_params = FN(DOM,is_params)(multi->u.dom);
72 multi_dom = FN(MULTI(BASE),get_explicit_domain)(multi);
74 domain = FN(DOM,intersect)(multi_dom, domain);
78 params = FN(DOM,params)(multi_dom);
79 domain = FN(DOM,intersect_params)(domain, params);
81 multi = FN(MULTI(BASE),set_explicit_domain)(multi, domain);
84 FN(MULTI(BASE),free)(multi);
85 FN(DOM,free)(domain);
92 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect)(
95 return FN(FN(MULTI(BASE),align_params),DOMBASE)(multi, domain,
95 return FN(FN(MULTI(BASE),align_params),DOMBASE)(multi, domain,
96 FN(MULTI(BASE),domain_intersect_aligned));
104 __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_domain)(
107 if (FN(MULTI(BASE),has_explicit_domain)(multi))
108 return FN(MULTI(BASE),domain_intersect)(multi, domain);
109 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, domain,
109 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, domain,
110 &FN(EL,intersect_domain));
116 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_params_aligned)(
121 multi_dom = FN(MULTI(BASE),get_explicit_domain)(multi);
122 multi_dom = FN(DOM,intersect_params)(multi_dom, domain);
123 multi = FN(MULTI(BASE),set_explicit_domain)(multi, multi_dom);
132 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_params)(
135 return FN(FN(MULTI(BASE),align_params),set)(multi, domain,
135 return FN(FN(MULTI(BASE),align_params),set)(multi, domain,
136 FN(MULTI(BASE),domain_intersect_params_aligned));
144 __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_params)(
147 if (FN(MULTI(BASE),has_explicit_domain)(multi))
148 return FN(MULTI(BASE),domain_intersect_params)(multi, domain);
149 return FN(MULTI(BASE),apply_set)(multi, domain,
150 &FN(EL,intersect_params));
tools/polly/lib/External/isl/isl_multi_no_explicit_domain.c 21 static int FN(MULTI(BASE),has_explicit_domain)(__isl_keep MULTI(BASE) *multi)
29 static __isl_give MULTI(BASE) *FN(MULTI(BASE),init_explicit_domain)(
38 static __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_explicit_domain)(
48 static __isl_give MULTI(BASE) *FN(MULTI(BASE),copy_explicit_domain)(
62 FN(MULTI(BASE),intersect_explicit_domain_product)(
72 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_explicit_domain_params)(
83 static __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_explicit_domain_space)(
95 isl_bool FN(MULTI(BASE),involves_explicit_domain_dims)(
106 __isl_give MULTI(BASE) *FN(MULTI(BASE),insert_explicit_domain_dims)(
117 __isl_give MULTI(BASE) *FN(MULTI(BASE),drop_explicit_domain_dims)(
128 __isl_give MULTI(BASE) *FN(MULTI(BASE),move_explicit_domain_dims)(
139 static void FN(MULTI(BASE),free_explicit_domain)(__isl_keep MULTI(BASE) *multi)
147 static isl_bool FN(MULTI(BASE),equal_explicit_domain)(
153 static isl_stat FN(MULTI(BASE),check_explicit_domain)(
161 static isl_stat FN(MULTI(BASE),check_explicit_domain)(
tools/polly/lib/External/isl/isl_multi_pw_aff_explicit_domain.c 40 return FN(isl_multi_pw_aff,free)(dst);
tools/polly/lib/External/isl/isl_multi_templ.c 23 isl_ctx *FN(MULTI(BASE),get_ctx)(__isl_keep MULTI(BASE) *multi)
30 __isl_keep isl_space *FN(MULTI(BASE),peek_space)(__isl_keep MULTI(BASE) *multi)
35 __isl_give isl_space *FN(MULTI(BASE),get_space)(__isl_keep MULTI(BASE) *multi)
37 return isl_space_copy(FN(MULTI(BASE),peek_space)(multi));
44 int FN(MULTI(BASE),find_dim_by_name)(__isl_keep MULTI(BASE) *multi,
52 __isl_give isl_space *FN(MULTI(BASE),get_domain_space)(
64 __isl_give MULTI(BASE) *FN(MULTI(BASE),alloc)(__isl_take isl_space *space)
86 if (FN(MULTI(BASE),has_explicit_domain)(multi))
87 multi = FN(MULTI(BASE),init_explicit_domain)(multi);
94 __isl_give MULTI(BASE) *FN(MULTI(BASE),dup)(__isl_keep MULTI(BASE) *multi)
102 dup = FN(MULTI(BASE),alloc)(isl_space_copy(multi->space));
107 dup = FN(FN(MULTI(BASE),set),BASE)(dup, i,
107 dup = FN(FN(MULTI(BASE),set),BASE)(dup, i,
108 FN(EL,copy)(multi->u.p[i]));
109 if (FN(MULTI(BASE),has_explicit_domain)(multi))
110 dup = FN(MULTI(BASE),copy_explicit_domain)(dup, multi);
115 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi)
124 return FN(MULTI(BASE),dup)(multi);
127 __isl_give MULTI(BASE) *FN(MULTI(BASE),copy)(__isl_keep MULTI(BASE) *multi)
136 __isl_null MULTI(BASE) *FN(MULTI(BASE),free)(__isl_take MULTI(BASE) *multi)
148 FN(EL,free)(multi->u.p[i]);
149 if (FN(MULTI(BASE),has_explicit_domain)(multi))
150 FN(MULTI(BASE),free_explicit_domain)(multi);
156 unsigned FN(MULTI(BASE),dim)(__isl_keep MULTI(BASE) *multi,
165 int FN(MULTI(BASE),find_dim_by_id)(__isl_keep MULTI(BASE) *multi,
175 __isl_give isl_id *FN(MULTI(BASE),get_dim_id)(__isl_keep MULTI(BASE) *multi,
181 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_name)(
187 multi = FN(MULTI(BASE),cow)(multi);
193 return FN(MULTI(BASE),free)(multi);
198 multi->u.p[i] = FN(EL,set_dim_name)(multi->u.p[i],
201 return FN(MULTI(BASE),free)(multi);
207 const char *FN(MULTI(BASE),get_tuple_name)(__isl_keep MULTI(BASE) *multi,
215 isl_bool FN(MULTI(BASE),has_tuple_id)(__isl_keep MULTI(BASE) *multi,
225 __isl_give isl_id *FN(MULTI(BASE),get_tuple_id)(__isl_keep MULTI(BASE) *multi,
231 __isl_give EL *FN(FN(MULTI(BASE),get),BASE)(__isl_keep MULTI(BASE) *multi,
231 __isl_give EL *FN(FN(MULTI(BASE),get),BASE)(__isl_keep MULTI(BASE) *multi,
238 ctx = FN(MULTI(BASE),get_ctx)(multi);
242 return FN(EL,copy)(multi->u.p[pos]);
248 static __isl_give MULTI(BASE) *FN(MULTI(BASE),restore)(
251 multi = FN(MULTI(BASE),cow)(multi);
256 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
259 FN(EL,free)(multi->u.p[pos]);
264 FN(MULTI(BASE),free)(multi);
265 FN(EL,free)(el);
274 static __isl_give MULTI(BASE) *FN(MULTI(BASE),restore_check_space)(
279 space = FN(MULTI(BASE),peek_space)(multi);
280 if (FN(EL,check_match_domain_space)(el, space) < 0)
281 multi = FN(MULTI(BASE),free)(multi);
282 return FN(MULTI(BASE),restore)(multi, pos, el);
285 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),set),BASE)(
285 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),set),BASE)(
292 multi_space = FN(MULTI(BASE),get_space)(multi);
293 match = FN(EL,matching_params)(el, multi_space);
297 multi = FN(MULTI(BASE),align_params)(multi,
298 FN(EL,get_space)(el));
300 multi_space = FN(MULTI(BASE),get_space)(multi);
301 el = FN(EL,align_params)(el, isl_space_copy(multi_space));
304 multi = FN(MULTI(BASE),restore_check_space)(multi, pos, el);
311 FN(MULTI(BASE),free)(multi);
312 FN(EL,free)(el);
328 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space_and_domain)(
334 multi = FN(MULTI(BASE),cow)(multi);
339 multi->u.p[i] = FN(EL,reset_domain_space)(multi->u.p[i],
344 if (FN(MULTI(BASE),has_explicit_domain)(multi)) {
345 multi = FN(MULTI(BASE),reset_explicit_domain_space)(multi,
358 FN(MULTI(BASE),free)(multi);
362 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_domain_space)(
369 return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
372 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space)(
378 return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
383 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_id)(
389 multi = FN(MULTI(BASE),cow)(multi);
393 space = FN(MULTI(BASE),get_space)(multi);
396 return FN(MULTI(BASE),reset_space)(multi, space);
399 FN(MULTI(BASE),free)(multi);
403 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_name)(
409 multi = FN(MULTI(BASE),cow)(multi);
413 space = FN(MULTI(BASE),get_space)(multi);
416 return FN(MULTI(BASE),reset_space)(multi, space);
419 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_id)(
425 multi = FN(MULTI(BASE),cow)(multi);
429 space = FN(MULTI(BASE),get_space)(multi);
432 return FN(MULTI(BASE),reset_space)(multi, space);
440 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_tuple_id)(
447 if (!FN(MULTI(BASE),has_tuple_id)(multi, type))
450 multi = FN(MULTI(BASE),cow)(multi);
454 space = FN(MULTI(BASE),get_space)(multi);
457 return FN(MULTI(BASE),reset_space)(multi, space);
463 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_user)(
468 space = FN(MULTI(BASE),get_space)(multi);
471 return FN(MULTI(BASE),reset_space)(multi, space);
474 __isl_give MULTI(BASE) *FN(MULTI(BASE),realign_domain)(
480 multi = FN(MULTI(BASE),cow)(multi);
485 multi->u.p[i] = FN(EL,realign_domain)(multi->u.p[i],
492 multi = FN(MULTI(BASE),reset_domain_space)(multi, space);
498 FN(MULTI(BASE),free)(multi);
507 __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params)(
533 if (FN(MULTI(BASE),has_explicit_domain)(multi)) {
534 multi = FN(MULTI(BASE),align_explicit_domain_params)(multi,
541 FN(MULTI(BASE),get_domain_space)(multi));
542 multi = FN(MULTI(BASE),realign_domain)(multi, exp);
548 FN(MULTI(BASE),free)(multi);
559 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),LIST(BASE))(
559 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),LIST(BASE))(
571 n = FN(FN(LIST(EL),n),BASE)(list);
571 n = FN(FN(LIST(EL),n),BASE)(list);
577 EL *el = FN(LIST(EL),peek)(list, i);
578 space = isl_space_align_params(space, FN(EL,get_space)(el));
580 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
582 EL *el = FN(FN(LIST(EL),get),BASE)(list, i);
582 EL *el = FN(FN(LIST(EL),get),BASE)(list, i);
583 el = FN(EL,align_params)(el, isl_space_copy(space));
584 multi = FN(MULTI(BASE),restore_check_space)(multi, i, el);
588 FN(LIST(EL),free)(list);
592 FN(LIST(EL),free)(list);
600 __isl_give MULTI(BASE) *FN(MULTI(BASE),identity)(__isl_take isl_space *space)
619 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
631 el = FN(EL,var_on_domain)(isl_local_space_copy(ls),
633 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i, el);
633 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i, el);
649 __isl_give MULTI(BASE) *FN(MULTI(BASE),zero)(__isl_take isl_space *space)
658 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
669 el = FN(EL,zero_on_domain)(ls);
672 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i,
672 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i,
673 FN(EL,copy)(el));
675 FN(EL,free)(el);
692 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)
692 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)
697 space = FN(EL,get_space(el));
702 multi = FN(MULTI(BASE),alloc)(space);
703 multi = FN(FN(MULTI(BASE),set),BASE)(multi, 0, el);
703 multi = FN(FN(MULTI(BASE),set),BASE)(multi, 0, el);
709 __isl_give MULTI(BASE) *FN(MULTI(BASE),drop_dims)(
716 multi = FN(MULTI(BASE),cow)(multi);
720 dim = FN(MULTI(BASE),dim)(multi, type);
722 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
724 return FN(MULTI(BASE),free)(multi));
728 return FN(MULTI(BASE),free)(multi);
732 FN(EL,free)(multi->u.p[first + i]);
736 if (n > 0 && FN(MULTI(BASE),has_explicit_domain)(multi))
737 multi = FN(MULTI(BASE),init_explicit_domain)(multi);
742 if (FN(MULTI(BASE),has_explicit_domain)(multi))
743 multi = FN(MULTI(BASE),drop_explicit_domain_dims)(multi,
749 multi->u.p[i] = FN(EL,drop_dims)(multi->u.p[i], type, first, n);
751 return FN(MULTI(BASE),free)(multi);
759 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params_multi_multi_and)(
774 ctx = FN(MULTI(BASE),get_ctx)(multi1);
779 multi1 = FN(MULTI(BASE),align_params)(multi1,
780 FN(MULTI(BASE),get_space)(multi2));
781 multi2 = FN(MULTI(BASE),align_params)(multi2,
782 FN(MULTI(BASE),get_space)(multi1));
785 FN(MULTI(BASE),free)(multi1);
786 FN(MULTI(BASE),free)(multi2);
798 static __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product_aligned)(
809 space = isl_space_range_product(FN(MULTI(BASE),get_space)(multi1),
810 FN(MULTI(BASE),get_space)(multi2));
811 res = FN(MULTI(BASE),alloc)(space);
813 n1 = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
814 n2 = FN(MULTI(BASE),dim)(multi2, isl_dim_out);
817 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
817 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
818 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
818 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
822 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
822 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
823 res = FN(FN(MULTI(BASE),set),BASE)(res, n1 + i, el);
823 res = FN(FN(MULTI(BASE),set),BASE)(res, n1 + i, el);
826 if (FN(MULTI(BASE),has_explicit_domain)(multi1))
827 res = FN(MULTI(BASE),intersect_explicit_domain)(res, multi1);
828 if (FN(MULTI(BASE),has_explicit_domain)(multi2))
829 res = FN(MULTI(BASE),intersect_explicit_domain)(res, multi2);
831 FN(MULTI(BASE),free)(multi1);
832 FN(MULTI(BASE),free)(multi2);
835 FN(MULTI(BASE),free)(multi1);
836 FN(MULTI(BASE),free)(multi2);
843 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product)(
846 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
847 &FN(MULTI(BASE),range_product_aligned));
852 isl_bool FN(MULTI(BASE),range_is_wrapping)(__isl_keep MULTI(BASE) *multi)
861 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_factor_domain)(
870 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
872 return FN(MULTI(BASE),free)(multi));
874 space = FN(MULTI(BASE),get_space)(multi);
878 multi = FN(MULTI(BASE),drop_dims)(multi,
880 multi = FN(MULTI(BASE),reset_space)(multi, space);
887 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_factor_range)(
896 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
898 return FN(MULTI(BASE),free)(multi));
900 space = FN(MULTI(BASE),get_space)(multi);
904 multi = FN(MULTI(BASE),drop_dims)(multi, isl_dim_out, 0, total - keep);
905 multi = FN(MULTI(BASE),reset_space)(multi, space);
912 __isl_give MULTI(BASE) *FN(MULTI(BASE),factor_range)(
921 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
922 "not a product", return FN(MULTI(BASE),free)(multi));
924 space = FN(MULTI(BASE),get_space)(multi);
928 multi = FN(MULTI(BASE),drop_dims)(multi, isl_dim_out, 0, total - keep);
929 multi = FN(MULTI(BASE),reset_space)(multi, space);
943 __isl_give MULTI(BASE) *FN(MULTI(BASE),product_aligned)(
952 in1 = FN(MULTI(BASE),dim)(multi1, isl_dim_in);
953 in2 = FN(MULTI(BASE),dim)(multi2, isl_dim_in);
954 out1 = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
955 out2 = FN(MULTI(BASE),dim)(multi2, isl_dim_out);
956 space = isl_space_product(FN(MULTI(BASE),get_space)(multi1),
957 FN(MULTI(BASE),get_space)(multi2));
958 res = FN(MULTI(BASE),alloc)(isl_space_copy(space));
962 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
962 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
963 el = FN(EL,insert_dims)(el, isl_dim_in, in1, in2);
964 el = FN(EL,reset_domain_space)(el, isl_space_copy(space));
965 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
965 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
969 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
969 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
970 el = FN(EL,insert_dims)(el, isl_dim_in, 0, in1);
971 el = FN(EL,reset_domain_space)(el, isl_space_copy(space));
972 res = FN(FN(MULTI(BASE),set),BASE)(res, out1 + i, el);
972 res = FN(FN(MULTI(BASE),set),BASE)(res, out1 + i, el);
975 if (FN(MULTI(BASE),has_explicit_domain)(multi1) ||
976 FN(MULTI(BASE),has_explicit_domain)(multi2))
977 res = FN(MULTI(BASE),intersect_explicit_domain_product)(res,
981 FN(MULTI(BASE),free)(multi1);
982 FN(MULTI(BASE),free)(multi2);
989 __isl_give MULTI(BASE) *FN(MULTI(BASE),product)(
992 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
993 &FN(MULTI(BASE),product_aligned));
997 __isl_give MULTI(BASE) *FN(MULTI(BASE),flatten_range)(
1006 multi = FN(MULTI(BASE),cow)(multi);
1012 return FN(MULTI(BASE),free)(multi);
1020 __isl_give MULTI(BASE) *FN(MULTI(BASE),flat_range_product)(
1025 multi = FN(MULTI(BASE),range_product)(multi1, multi2);
1026 multi = FN(MULTI(BASE),flatten_range)(multi);
1042 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_splice)(
1052 dim = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
1054 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
1057 res = FN(MULTI(BASE),copy)(multi1);
1058 res = FN(MULTI(BASE),drop_dims)(res, isl_dim_out, pos, dim - pos);
1059 multi1 = FN(MULTI(BASE),drop_dims)(multi1, isl_dim_out, 0, pos);
1061 res = FN(MULTI(BASE),flat_range_product)(res, multi2);
1062 res = FN(MULTI(BASE),flat_range_product)(res, multi1);
1066 FN(MULTI(BASE),free)(multi1);
1067 FN(MULTI(BASE),free)(multi2);
1095 __isl_give MULTI(BASE) *FN(MULTI(BASE),splice)(
1105 n_in1 = FN(MULTI(BASE),dim)(multi1, isl_dim_in);
1107 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
1110 n_in2 = FN(MULTI(BASE),dim)(multi2, isl_dim_in);
1112 multi1 = FN(MULTI(BASE),insert_dims)(multi1, isl_dim_in, in_pos, n_in2);
1113 multi2 = FN(MULTI(BASE),insert_dims)(multi2, isl_dim_in, n_in2,
1115 multi2 = FN(MULTI(BASE),insert_dims)(multi2, isl_dim_in, 0, in_pos);
1117 return FN(MULTI(BASE),range_splice)(multi1, out_pos, multi2);
1119 FN(MULTI(BASE),free)(multi1);
1120 FN(MULTI(BASE),free)(multi2);
1128 static isl_stat FN(MULTI(BASE),check_equal_space)(
1140 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
1148 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
1159 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
1165 multi1 = FN(MULTI(BASE),cow)(multi1);
1166 if (FN(MULTI(BASE),check_equal_space)(multi1, multi2) < 0)
1171 FN(EL,copy)(multi2->u.p[i]));
1176 if (FN(MULTI(BASE),has_explicit_domain)(multi2))
1177 multi1 = FN(MULTI(BASE),intersect_explicit_domain)(multi1,
1180 FN(MULTI(BASE),free)(multi2);
1183 FN(MULTI(BASE),free)(multi1);
1184 FN(MULTI(BASE),free)(multi2);
1192 static __isl_give MULTI(BASE) *FN(MULTI(BASE),add_aligned)(
1195 return FN(MULTI(BASE),bin_op)(multi1, multi2, &FN(EL,add));
1195 return FN(MULTI(BASE),bin_op)(multi1, multi2, &FN(EL,add));
1200 __isl_give MULTI(BASE) *FN(MULTI(BASE),add)(__isl_take MULTI(BASE) *multi1,
1203 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
1204 &FN(MULTI(BASE),add_aligned));
1211 static __isl_give MULTI(BASE) *FN(MULTI(BASE),sub_aligned)(
1214 return FN(MULTI(BASE),bin_op)(multi1, multi2, &FN(EL,sub));
1214 return FN(MULTI(BASE),bin_op)(multi1, multi2, &FN(EL,sub));
1219 __isl_give MULTI(BASE) *FN(MULTI(BASE),sub)(__isl_take MULTI(BASE) *multi1,
1222 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
1223 &FN(MULTI(BASE),sub_aligned));
1228 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_val)(__isl_take MULTI(BASE) *multi,
1245 multi = FN(MULTI(BASE),cow)(multi);
1250 multi->u.p[i] = FN(EL,scale_val)(multi->u.p[i],
1260 return FN(MULTI(BASE),free)(multi);
1265 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_down_val)(
1285 multi = FN(MULTI(BASE),cow)(multi);
1290 multi->u.p[i] = FN(EL,scale_down_val)(multi->u.p[i],
1300 return FN(MULTI(BASE),free)(multi);
1306 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_multi_val)(
1319 multi = FN(MULTI(BASE),cow)(multi);
1327 multi->u.p[i] = FN(EL,scale_val)(multi->u.p[i], v);
1336 return FN(MULTI(BASE),free)(multi);
1342 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_down_multi_val)(
1355 multi = FN(MULTI(BASE),cow)(multi);
1363 multi->u.p[i] = FN(EL,scale_down_val)(multi->u.p[i], v);
1372 return FN(MULTI(BASE),free)(multi);
1378 __isl_give MULTI(BASE) *FN(MULTI(BASE),mod_multi_val)(
1391 multi = FN(MULTI(BASE),cow)(multi);
1399 multi->u.p[i] = FN(EL,mod_val)(multi->u.p[i], v);
1408 return FN(MULTI(BASE),free)(multi);
1417 __isl_give MULTI(BASE) *FN(MULTI(BASE),move_dims)(__isl_take MULTI(BASE) *multi,
1432 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1434 return FN(MULTI(BASE),free)(multi));
1436 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1438 return FN(MULTI(BASE),free)(multi));
1440 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1442 return FN(MULTI(BASE),free)(multi));
1444 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_unsupported,
1446 return FN(MULTI(BASE),free)(multi));
1448 multi = FN(MULTI(BASE),cow)(multi);
1455 return FN(MULTI(BASE),free)(multi);
1456 if (FN(MULTI(BASE),has_explicit_domain)(multi))
1457 multi = FN(MULTI(BASE),move_explicit_domain_dims)(multi,
1463 multi->u.p[i] = FN(EL,move_dims)(multi->u.p[i],
1467 return FN(MULTI(BASE),free)(multi);
1477 __isl_give MULTI(BASE) *FN(MULTI(BASE),from_range)(
1485 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1487 return FN(MULTI(BASE),free)(multi));
1489 space = FN(MULTI(BASE),get_space)(multi);
1491 multi = FN(MULTI(BASE),reset_space)(multi, space);
1498 isl_bool FN(MULTI(BASE),plain_is_equal)(__isl_keep MULTI(BASE) *multi1,
1513 equal = FN(EL,plain_is_equal)(multi1->u.p[i], multi2->u.p[i]);
1518 if (FN(MULTI(BASE),has_explicit_domain)(multi1) ||
1519 FN(MULTI(BASE),has_explicit_domain)(multi2)) {
1520 equal = FN(MULTI(BASE),equal_explicit_domain)(multi1, multi2);
1530 isl_bool FN(MULTI(BASE),involves_nan)(__isl_keep MULTI(BASE) *multi)
1540 isl_bool has_nan = FN(EL,involves_nan)(multi->u.p[i]);
1553 __isl_give isl_set *FN(MULTI(BASE),domain)(__isl_take MULTI(BASE) *multi)
1561 if (FN(MULTI(BASE),has_explicit_domain)(multi)) {
1562 dom = FN(MULTI(BASE),get_explicit_domain)(multi);
1563 FN(MULTI(BASE),free)(multi);
1567 dom = isl_set_universe(FN(MULTI(BASE),get_domain_space)(multi));
1571 dom_i = FN(EL,domain)(FN(FN(MULTI(BASE),get),BASE)(multi, i));
1571 dom_i = FN(EL,domain)(FN(FN(MULTI(BASE),get),BASE)(multi, i));
1571 dom_i = FN(EL,domain)(FN(FN(MULTI(BASE),get),BASE)(multi, i));
1575 FN(MULTI(BASE),free)(multi);
1583 __isl_give MULTI(BASE) *FN(MULTI(BASE),neg)(__isl_take MULTI(BASE) *multi)
1587 multi = FN(MULTI(BASE),cow)(multi);
1592 multi->u.p[i] = FN(EL,neg)(multi->u.p[i]);
1594 return FN(MULTI(BASE),free)(multi);
tools/polly/lib/External/isl/isl_multi_templ.h 29 __isl_keep isl_space *FN(MULTI(BASE),peek_space)(__isl_keep MULTI(BASE) *multi);