6 #if defined(__cplusplus)
10 const char *pet_type_str(enum pet_expr_type type
);
11 enum pet_expr_type
pet_str_type(const char *str
);
13 enum pet_op_type
pet_str_op(const char *str
);
15 struct pet_expr
*pet_expr_from_index_and_depth(
16 __isl_take isl_multi_pw_aff
*index
, int depth
);
17 struct pet_expr
*pet_expr_from_access_and_index(__isl_take isl_map
*access
,
18 __isl_take isl_multi_pw_aff
*index
);
19 struct pet_expr
*pet_expr_kill_from_access_and_index(__isl_take isl_map
*access
,
20 __isl_take isl_multi_pw_aff
*index
);
21 struct pet_expr
*pet_expr_new_unary(isl_ctx
*ctx
, enum pet_op_type op
,
22 struct pet_expr
*arg
);
23 struct pet_expr
*pet_expr_new_binary(isl_ctx
*ctx
, enum pet_op_type op
,
24 struct pet_expr
*lhs
, struct pet_expr
*rhs
);
25 struct pet_expr
*pet_expr_new_ternary(isl_ctx
*ctx
, struct pet_expr
*cond
,
26 struct pet_expr
*lhs
, struct pet_expr
*rhs
);
27 struct pet_expr
*pet_expr_new_call(isl_ctx
*ctx
, const char *name
,
29 struct pet_expr
*pet_expr_new_cast(isl_ctx
*ctx
, const char *type_name
,
30 struct pet_expr
*arg
);
31 struct pet_expr
*pet_expr_new_double(isl_ctx
*ctx
, double d
, const char *s
);
32 struct pet_expr
*pet_expr_new_int(__isl_take isl_val
*v
);
33 void pet_expr_dump(struct pet_expr
*expr
);
35 int pet_expr_is_affine(struct pet_expr
*expr
);
36 int pet_expr_is_scalar_access(struct pet_expr
*expr
);
37 int pet_expr_is_equal(struct pet_expr
*expr1
, struct pet_expr
*expr2
);
39 __isl_give isl_id
*pet_expr_access_get_id(struct pet_expr
*expr
);
40 __isl_give isl_space
*pet_expr_access_get_parameter_space(
41 struct pet_expr
*expr
);
42 __isl_give isl_space
*pet_expr_access_get_data_space(struct pet_expr
*expr
);
44 struct pet_expr
*pet_expr_map_access(struct pet_expr
*expr
,
45 struct pet_expr
*(*fn
)(struct pet_expr
*expr
, void *user
),
48 int pet_expr_writes(struct pet_expr
*expr
, __isl_keep isl_id
*id
);
50 struct pet_expr
*pet_expr_access_move_dims(struct pet_expr
*expr
,
51 enum isl_dim_type dst_type
, unsigned dst_pos
,
52 enum isl_dim_type src_type
, unsigned src_pos
, unsigned n
);
53 struct pet_expr
*pet_expr_access_pullback_multi_aff(
54 struct pet_expr
*expr
, __isl_take isl_multi_aff
*ma
);
55 struct pet_expr
*pet_expr_access_align_params(struct pet_expr
*expr
);
56 struct pet_expr
*pet_expr_restrict(struct pet_expr
*expr
,
57 __isl_take isl_set
*cond
);
58 struct pet_expr
*pet_expr_access_update_domain(struct pet_expr
*expr
,
59 __isl_keep isl_multi_pw_aff
*update
);
60 struct pet_expr
*pet_expr_update_domain(struct pet_expr
*expr
,
61 __isl_take isl_multi_pw_aff
*update
);
62 struct pet_expr
*pet_expr_align_params(struct pet_expr
*expr
,
63 __isl_take isl_space
*space
);
64 struct pet_expr
*pet_expr_filter(struct pet_expr
*expr
,
65 __isl_take isl_multi_pw_aff
*test
, int satisfied
);
66 struct pet_expr
*pet_expr_detect_parameter_accesses(struct pet_expr
*expr
,
67 __isl_take isl_space
*space
);
68 struct pet_expr
*pet_expr_add_ref_ids(struct pet_expr
*expr
, int *n_ref
);
69 struct pet_expr
*pet_expr_anonymize(struct pet_expr
*expr
);
70 struct pet_expr
*pet_expr_gist(struct pet_expr
*expr
,
71 __isl_keep isl_set
*context
, __isl_keep isl_union_map
*value_bounds
);
73 __isl_give isl_map
*pet_expr_tag_access(struct pet_expr
*expr
,
74 __isl_take isl_map
*access
);
76 void pet_expr_dump_with_indent(struct pet_expr
*expr
, int indent
);
78 #if defined(__cplusplus)