extract out pet_wrap_aff and pet_wrap_pw_aff
[pet.git] / context.h
blobac4d447caf1ffab9525998f168e7984f53fcf271
1 #ifndef PET_CONTEXT_H
2 #define PET_CONTEXT_H
4 #include <isl/space.h>
5 #include <isl/set.h>
6 #include <isl/id_to_pw_aff.h>
8 #include <pet.h>
10 #if defined(__cplusplus)
11 extern "C" {
12 #endif
14 __isl_give isl_set *pet_context_get_domain(__isl_keep pet_context *pc);
15 __isl_give isl_set *pet_context_get_gist_domain(__isl_keep pet_context *pc);
16 __isl_give isl_space *pet_context_get_space(__isl_keep pet_context *pc);
17 unsigned pet_context_dim(__isl_keep pet_context *pc);
18 __isl_give isl_id_to_pw_aff *pet_context_get_assignments(
19 __isl_keep pet_context *pc);
20 int pet_context_is_assigned(__isl_keep pet_context *pc, __isl_keep isl_id *id);
21 __isl_give pet_context *pet_context_set_value(__isl_take pet_context *pc,
22 __isl_take isl_id *id, isl_pw_aff *value);
23 __isl_give isl_pw_aff *pet_context_get_value(__isl_keep pet_context *pc,
24 __isl_take isl_id *id);
25 __isl_give pet_context *pet_context_clear_value(__isl_keep pet_context *pc,
26 __isl_take isl_id *id);
27 __isl_give pet_context *pet_context_set_allow_nested(__isl_take pet_context *pc,
28 int allow_nested);
29 int pet_context_allow_nesting(__isl_keep pet_context *pc);
31 __isl_give pet_context *pet_context_clear_writes_in_expr(
32 __isl_take pet_context *pc, __isl_keep pet_expr *expr);
33 __isl_give pet_context *pet_context_clear_writes_in_tree(
34 __isl_take pet_context *pc, __isl_keep pet_tree *tree);
35 __isl_give pet_context *pet_context_add_parameters(__isl_take pet_context *pc,
36 __isl_keep pet_tree *tree,
37 __isl_give pet_expr *(*get_array_size)(__isl_keep pet_expr *access,
38 void *user), void *user);
40 __isl_give pet_expr *pet_context_evaluate_expr(__isl_keep pet_context *pc,
41 __isl_take pet_expr *expr);
42 __isl_give pet_tree *pet_context_evaluate_tree(__isl_keep pet_context *pc,
43 __isl_take pet_tree *tree);
45 __isl_give pet_context *pet_context_add_inner_iterator(
46 __isl_take pet_context *pc, __isl_take isl_id *id);
47 __isl_give pet_context *pet_context_add_infinite_loop(
48 __isl_take pet_context *pc);
49 __isl_give pet_context *pet_context_preimage_domain(__isl_take pet_context *pc,
50 __isl_keep isl_multi_aff *ma);
52 __isl_give pet_context *pet_context_intersect_domain(__isl_take pet_context *pc,
53 __isl_take isl_set *set);
55 __isl_give isl_maybe_isl_pw_aff pet_context_get_extracted_affine(
56 __isl_keep pet_context *pc, __isl_keep pet_expr *expr);
57 isl_stat pet_context_set_extracted_affine(__isl_keep pet_context *pc,
58 __isl_keep pet_expr *expr, __isl_keep isl_pw_aff *pa);
60 void pet_context_dump(__isl_keep pet_context *pc);
62 #if defined(__cplusplus)
64 #endif
66 #endif