tree2scop.c: infinite_domain: delay intersection with affine break
[pet.git] / context.h
blob02d789558acc18d3f07e4d61c924766c32ad24e9
1 #ifndef PET_CONTEXT_H
2 #define PET_CONTEXT_H
4 #include <isl/space.h>
5 #include <isl/id_to_pw_aff.h>
7 #include <pet.h>
9 #if defined(__cplusplus)
10 extern "C" {
11 #endif
13 struct pet_context;
14 typedef struct pet_context pet_context;
16 isl_ctx *pet_context_get_ctx(__isl_keep pet_context *pc);
18 __isl_give pet_context *pet_context_alloc(__isl_take isl_space *domain);
19 __isl_give pet_context *pet_context_copy(__isl_keep pet_context *pc);
20 __isl_null pet_context *pet_context_free(__isl_take pet_context *pc);
22 __isl_give isl_space *pet_context_get_space(__isl_keep pet_context *pc);
23 unsigned pet_context_dim(__isl_keep pet_context *pc);
24 __isl_give isl_id_to_pw_aff *pet_context_get_assignments(
25 __isl_keep pet_context *pc);
26 int pet_context_is_assigned(__isl_keep pet_context *pc, __isl_keep isl_id *id);
27 __isl_give pet_context *pet_context_set_value(__isl_take pet_context *pc,
28 __isl_take isl_id *id, isl_pw_aff *value);
29 __isl_give isl_pw_aff *pet_context_get_value(__isl_keep pet_context *pc,
30 __isl_take isl_id *id);
31 __isl_give pet_context *pet_context_mark_unknown(__isl_take pet_context *pc,
32 __isl_take isl_id *id);
33 __isl_give pet_context *pet_context_mark_assigned(__isl_take pet_context *pc,
34 __isl_take isl_id *id);
35 __isl_give pet_context *pet_context_clear_value(__isl_keep pet_context *pc,
36 __isl_take isl_id *id);
37 __isl_give pet_context *pet_context_set_allow_nested(__isl_take pet_context *pc,
38 int allow_nested);
39 int pet_context_allow_nesting(__isl_keep pet_context *pc);
41 __isl_give pet_context *pet_context_clear_writes_in_expr(
42 __isl_take pet_context *pc, __isl_keep pet_expr *expr);
43 __isl_give pet_context *pet_context_clear_writes_in_tree(
44 __isl_take pet_context *pc, __isl_keep pet_tree *tree);
46 void pet_context_dump(__isl_keep pet_context *pc);
48 #if defined(__cplusplus)
50 #endif
52 #endif