add pet_expr_map_op
[pet.git] / summary.h
blobfa6b44a64921366dda067c134ce48fd185cb75f8
1 #ifndef PET_SUMMARY_H
2 #define PET_SUMMARY_H
4 #include <isl/map.h>
6 #include "expr_access_type.h"
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
12 enum pet_arg_type {
13 pet_arg_int,
14 pet_arg_array,
15 pet_arg_other
18 struct pet_function_summary;
19 typedef struct pet_function_summary pet_function_summary;
21 __isl_give pet_function_summary *pet_function_summary_alloc(isl_ctx *ctx,
22 unsigned n_arg);
23 __isl_give pet_function_summary *pet_function_summary_copy(
24 __isl_keep pet_function_summary *summary);
25 __isl_null pet_function_summary *pet_function_summary_free(
26 __isl_take pet_function_summary *summary);
28 isl_ctx *pet_function_summary_get_ctx(__isl_keep pet_function_summary *summary);
30 int pet_function_summary_get_n_arg(__isl_keep pet_function_summary *summary);
32 __isl_give pet_function_summary *pet_function_summary_set_int(
33 __isl_take pet_function_summary *summary, int pos,
34 __isl_take isl_id *id);
35 __isl_give pet_function_summary *pet_function_summary_set_array(
36 __isl_take pet_function_summary *summary, int pos,
37 __isl_take isl_union_set *may_read, __isl_take isl_union_set *may_write,
38 __isl_take isl_union_set *must_write);
40 int pet_function_summary_arg_is_int(__isl_keep pet_function_summary *summary,
41 int pos);
42 int pet_function_summary_arg_is_array(__isl_keep pet_function_summary *summary,
43 int pos);
44 __isl_give isl_union_map *pet_function_summary_arg_get_access(
45 __isl_keep pet_function_summary *summary, int pos,
46 enum pet_expr_access_type type);
48 __isl_give isl_printer *pet_function_summary_print(
49 __isl_keep pet_function_summary *summary, __isl_take isl_printer *p);
50 void pet_function_summary_dump(__isl_keep pet_function_summary *summary);
52 #if defined(__cplusplus)
54 #endif
56 #endif