detect more forms of modulo expressions when extracting a function
[isl.git] / include / isl / id.h
blobf434d537de247473f61e6ab8c6be432eeccc175e
1 #ifndef ISL_ID_H
2 #define ISL_ID_H
4 #include <isl/ctx.h>
5 #include <isl/id_type.h>
6 #include <isl/list.h>
7 #include <isl/multi.h>
8 #include <isl/printer_type.h>
9 #include <isl/stdint.h>
11 #if defined(__cplusplus)
12 extern "C" {
13 #endif
15 ISL_DECLARE_EXPORTED_LIST_FN(id)
16 ISL_DECLARE_EXPORTED_LIST_FN_READ(id)
18 ISL_DECLARE_MULTI(id)
20 isl_ctx *isl_id_get_ctx(__isl_keep isl_id *id);
21 uint32_t isl_id_get_hash(__isl_keep isl_id *id);
23 __isl_give isl_id *isl_id_alloc(isl_ctx *ctx,
24 __isl_keep const char *name, void *user);
25 __isl_give isl_id *isl_id_copy(isl_id *id);
26 __isl_null isl_id *isl_id_free(__isl_take isl_id *id);
28 void *isl_id_get_user(__isl_keep isl_id *id);
29 __isl_export
30 __isl_keep const char *isl_id_get_name(__isl_keep isl_id *id);
32 __isl_give isl_id *isl_id_set_free_user(__isl_take isl_id *id,
33 void (*free_user)(void *user));
34 void (*isl_id_get_free_user(__isl_keep isl_id *id))(void *user);
36 __isl_constructor
37 __isl_give isl_id *isl_id_read_from_str(isl_ctx *ctx, const char *str);
38 __isl_give char *isl_id_to_str(__isl_keep isl_id *id);
39 __isl_give isl_printer *isl_printer_print_id(__isl_take isl_printer *p,
40 __isl_keep isl_id *id);
41 void isl_id_dump(__isl_keep isl_id *id);
43 __isl_constructor
44 __isl_give isl_multi_id *isl_multi_id_read_from_str(isl_ctx *ctx,
45 const char *str);
46 __isl_give isl_printer *isl_printer_print_multi_id(__isl_take isl_printer *p,
47 __isl_keep isl_multi_id *mi);
48 void isl_multi_id_dump(__isl_keep isl_multi_id *mi);
49 __isl_give char *isl_multi_id_to_str(__isl_keep isl_multi_id *mi);
51 #if defined(__cplusplus)
53 #endif
55 #endif