xref: /llvm-project/polly/lib/External/isl/isl_vec_private.h (revision a749e09e184b2b0b6dde71af01c82dd427b3e3e2)
1 #ifndef ISL_VEC_PRIVATE_H
2 #define ISL_VEC_PRIVATE_H
3 
4 #include <isl_blk.h>
5 #include <isl/vec.h>
6 
7 #include "isl_reordering.h"
8 
9 struct isl_vec {
10 	int ref;
11 
12 	struct isl_ctx *ctx;
13 
14 	unsigned size;
15 	isl_int *el;
16 
17 	struct isl_blk block;
18 };
19 
20 uint32_t isl_vec_get_hash(__isl_keep isl_vec *vec);
21 
22 __isl_give isl_vec *isl_vec_cow(__isl_take isl_vec *vec);
23 
24 void isl_vec_lcm(__isl_keep isl_vec *vec, isl_int *lcm);
25 __isl_give isl_vec *isl_vec_set(__isl_take isl_vec *vec, isl_int v);
26 
27 isl_bool isl_vec_is_zero(__isl_keep isl_vec *vec);
28 
29 __isl_give isl_vec *isl_vec_expand(__isl_take isl_vec *vec, int pos, int n,
30 	int *exp, int expanded);
31 __isl_give isl_vec *isl_vec_reorder(__isl_take isl_vec *vec,
32 	unsigned offset, __isl_take isl_reordering *r);
33 
34 #endif
35