pet_check_code: optionally take schedule tree as input
[pet.git] / context.h
blob8935b86d9a7d53eb0aabc3bf16744ff646f581ef
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 void pet_context_dump(__isl_keep pet_context *pc);
57 #if defined(__cplusplus)
59 #endif
61 #endif