1 | /* |
2 | * Copyright 2019 Cerebras Systems |
3 | * |
4 | * Use of this software is governed by the MIT license |
5 | * |
6 | * Written by Sven Verdoolaege, |
7 | * Cerebras Systems, 175 S San Antonio Rd, Los Altos, CA, USA |
8 | */ |
9 | |
10 | #define xFN(TYPE,NAME) TYPE ## _ ## NAME |
11 | #define FN(TYPE,NAME) xFN(TYPE,NAME) |
12 | |
13 | /* Copy the identifier of tuple "src_type" in "src" |
14 | * to that of "dst_type" in "dst", if there is any such identifier. |
15 | */ |
16 | __isl_give TYPE *FN(TYPE,copy_tuple_id)(__isl_take TYPE *dst, |
17 | enum isl_dim_type dst_type, __isl_keep isl_space *src, |
18 | enum isl_dim_type src_type) |
19 | { |
20 | isl_bool has_id; |
21 | isl_id *id; |
22 | |
23 | has_id = isl_space_has_tuple_id(space: src, type: src_type); |
24 | if (has_id < 0) |
25 | return FN(TYPE,free)(pw: dst); |
26 | if (!has_id) |
27 | return dst; |
28 | |
29 | id = isl_space_get_tuple_id(space: src, type: src_type); |
30 | dst = FN(TYPE,set_tuple_id)(pw: dst, type: dst_type, id); |
31 | |
32 | return dst; |
33 | } |
34 | |