2 * Copyright 2010 INRIA Saclay
4 * Use of this software is governed by the MIT license
6 * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France,
7 * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod,
11 __isl_give PW
*FN(PW
,move_dims
)(__isl_take PW
*pw
,
12 enum isl_dim_type dst_type
, unsigned dst_pos
,
13 enum isl_dim_type src_type
, unsigned src_pos
, unsigned n
)
19 space
= FN(PW
,take_space
)(pw
);
20 space
= isl_space_move_dims(space
, dst_type
, dst_pos
,
21 src_type
, src_pos
, n
);
22 pw
= FN(PW
,restore_space
)(pw
, space
);
24 n_piece
= FN(PW
,n_piece
)(pw
);
26 return FN(PW
,free
)(pw
);
28 for (i
= 0; i
< n_piece
; ++i
) {
31 el
= FN(PW
,take_base_at
)(pw
, i
);
32 el
= FN(EL
,move_dims
)(el
,
33 dst_type
, dst_pos
, src_type
, src_pos
, n
);
34 pw
= FN(PW
,restore_base_at
)(pw
, i
, el
);
37 if (dst_type
== isl_dim_in
)
38 dst_type
= isl_dim_set
;
39 if (src_type
== isl_dim_in
)
40 src_type
= isl_dim_set
;
42 for (i
= 0; i
< n_piece
; ++i
) {
45 domain
= FN(PW
,take_domain_at
)(pw
, i
);
46 domain
= isl_set_move_dims(domain
, dst_type
, dst_pos
,
47 src_type
, src_pos
, n
);
48 pw
= FN(PW
,restore_domain_at
)(pw
, i
, domain
);