Polly 19.0.0git
ast.h
Go to the documentation of this file.
1#ifndef ISL_AST_H
2#define ISL_AST_H
3
4#include <isl/ctx.h>
5#include <isl/ast_type.h>
6#include <isl/id_type.h>
8#include <isl/val_type.h>
9#include <isl/list.h>
10#include <isl/printer.h>
11
12#if defined(__cplusplus)
13extern "C" {
14#endif
15
18
21
24
59 __isl_take isl_ast_expr_list *indices);
61 __isl_take isl_ast_expr_list *arguments);
63
66
76
87 int pos);
89 int pos);
92
95
97 __isl_take isl_ast_expr *expr, __isl_take isl_id_to_ast_expr *id2expr);
98
105
112
116
118 __isl_take isl_ast_node *node, __isl_take isl_id *annotation);
120
138
155
158 __isl_take isl_ast_node_list *list);
162
168
172
175 isl_bool (*fn)(__isl_keep isl_ast_node *node, void *user), void *user);
179 __isl_take isl_ast_node *node, void *user), void *user);
180
185
193
198 __isl_keep isl_ast_node *node, void *user),
199 void *user);
204 __isl_keep isl_ast_node *node, void *user),
205 void *user);
206
209
211 isl_stat (*fn)(enum isl_ast_expr_op_type type, void *user), void *user);
213 isl_stat (*fn)(enum isl_ast_expr_op_type type, void *user), void *user);
215 isl_stat (*fn)(enum isl_ast_expr_op_type type, void *user), void *user);
217 isl_stat (*fn)(enum isl_ast_expr_op_type type, void *user), void *user);
220 __isl_keep const char *name);
223 __isl_keep const char *name);
241
244
245ISL_DECLARE_LIST_FN(ast_expr)
247
248#if defined(__cplusplus)
249}
250#endif
251
252#endif
polly dump function
__isl_give isl_ast_expr * isl_ast_expr_pdiv_q(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:728
__isl_export isl_size isl_ast_expr_op_get_n_arg(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:350
__isl_constructor __isl_give isl_ast_node * isl_ast_node_block_from_children(__isl_take isl_ast_node_list *list)
Definition: isl_ast.c:1037
__isl_give isl_ast_expr * isl_ast_expr_ge(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:796
__isl_give isl_ast_expr * isl_ast_expr_substitute_ids(__isl_take isl_ast_expr *expr, __isl_take isl_id_to_ast_expr *id2expr)
Definition: isl_ast.c:863
__isl_give isl_ast_expr * isl_ast_expr_access(__isl_take isl_ast_expr *array, __isl_take isl_ast_expr_list *indices)
Definition: isl_ast.c:832
__isl_give isl_ast_node * isl_ast_node_copy(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1092
__isl_give isl_ast_expr * isl_ast_expr_call(__isl_take isl_ast_expr *function, __isl_take isl_ast_expr_list *arguments)
Definition: isl_ast.c:841
__isl_export __isl_give isl_ast_expr * isl_ast_node_for_get_init(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1383
__isl_give isl_ast_node * isl_ast_node_set_annotation(__isl_take isl_ast_node *node, __isl_take isl_id *annotation)
__isl_export __isl_give isl_ast_node_list * isl_ast_node_block_get_children(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1576
__isl_export __isl_give isl_id * isl_ast_expr_id_get_id(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:300
__isl_export __isl_give isl_ast_node * isl_ast_node_if_get_else_node(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1507
__isl_null isl_ast_expr * isl_ast_expr_free(__isl_take isl_ast_expr *expr)
Definition: isl_ast.c:243
__isl_give isl_printer * isl_ast_node_print(__isl_keep isl_ast_node *node, __isl_take isl_printer *p, __isl_take isl_ast_print_options *options)
Definition: isl_ast.c:3215
__isl_give isl_ast_expr * isl_ast_expr_gt(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:804
__isl_give char * isl_ast_node_to_str(__isl_keep isl_ast_node *node)
__isl_give isl_ast_expr * isl_ast_expr_address_of(__isl_take isl_ast_expr *expr)
Definition: isl_ast.c:649
int isl_options_get_ast_print_macro_once(isl_ctx *ctx)
__isl_export __isl_give isl_val * isl_ast_expr_int_get_val(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:283
isl_stat isl_ast_node_foreach_descendant_top_down(__isl_keep isl_ast_node *node, isl_bool(*fn)(__isl_keep isl_ast_node *node, void *user), void *user)
Definition: isl_ast.c:1888
int isl_options_get_ast_always_print_block(isl_ctx *ctx)
__isl_give isl_printer * isl_ast_op_type_print_macro(enum isl_ast_expr_op_type type, __isl_take isl_printer *p)
Definition: isl_ast.c:3797
__isl_give isl_ast_print_options * isl_ast_print_options_alloc(isl_ctx *ctx)
Definition: isl_ast.c:35
isl_size isl_ast_expr_get_op_n_arg(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:359
enum isl_ast_expr_op_type isl_ast_expr_get_op_type(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:342
__isl_give isl_ast_expr * isl_ast_expr_get_op_arg(__isl_keep isl_ast_expr *expr, int pos)
Definition: isl_ast.c:377
__isl_give isl_ast_expr * isl_ast_expr_neg(__isl_take isl_ast_expr *expr)
Definition: isl_ast.c:642
__isl_give isl_ast_expr * isl_ast_expr_div(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:718
__isl_give isl_printer * isl_ast_expr_op_type_print_macro(enum isl_ast_expr_op_type type, __isl_take isl_printer *p)
Definition: isl_ast.c:3751
__isl_export __isl_give isl_ast_node * isl_ast_node_mark_get_node(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1650
isl_ctx * isl_ast_expr_get_ctx(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:271
__isl_give isl_ast_expr * isl_ast_expr_or(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:763
void isl_ast_expr_dump(__isl_keep isl_ast_expr *expr)
__isl_give isl_printer * isl_ast_node_if_print(__isl_keep isl_ast_node *node, __isl_take isl_printer *p, __isl_take isl_ast_print_options *options)
Definition: isl_ast.c:3192
__isl_give isl_ast_print_options * isl_ast_print_options_set_print_user(__isl_take isl_ast_print_options *options, __isl_give isl_printer *(*print_user)(__isl_take isl_printer *p, __isl_take isl_ast_print_options *options, __isl_keep isl_ast_node *node, void *user), void *user)
Definition: isl_ast.c:114
__isl_export __isl_give isl_ast_expr * isl_ast_node_for_get_inc(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1416
isl_stat isl_ast_node_foreach_ast_expr_op_type(__isl_keep isl_ast_node *node, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
Definition: isl_ast.c:3846
void isl_ast_node_dump(__isl_keep isl_ast_node *node)
isl_stat isl_ast_node_foreach_ast_op_type(__isl_keep isl_ast_node *node, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
Definition: isl_ast.c:3860
__isl_give isl_printer * isl_printer_print_ast_node(__isl_take isl_printer *p, __isl_keep isl_ast_node *node)
Definition: isl_ast.c:3239
__isl_give isl_ast_node * isl_ast_node_if_get_else(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1517
__isl_export __isl_give isl_ast_expr * isl_ast_node_for_get_cond(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1398
__isl_export __isl_give isl_ast_node * isl_ast_node_for_get_body(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1348
__isl_give isl_ast_expr * isl_ast_expr_le(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:780
isl_bool isl_ast_expr_is_equal(__isl_keep isl_ast_expr *expr1, __isl_keep isl_ast_expr *expr2)
Definition: isl_ast.c:511
__isl_give isl_ast_expr * isl_ast_expr_mul(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:710
__isl_export __isl_give isl_ast_expr * isl_ast_expr_op_get_arg(__isl_keep isl_ast_expr *expr, int pos)
Definition: isl_ast.c:366
__isl_give isl_id * isl_ast_expr_get_id(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:313
isl_stat isl_options_set_ast_iterator_type(isl_ctx *ctx, const char *val)
__isl_export __isl_give isl_ast_expr * isl_ast_node_user_get_expr(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1629
__isl_give isl_printer * isl_ast_node_for_print(__isl_keep isl_ast_node *node, __isl_take isl_printer *p, __isl_take isl_ast_print_options *options)
Definition: isl_ast.c:3176
__isl_export __isl_give isl_ast_expr * isl_ast_node_if_get_cond(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1568
__isl_give isl_ast_print_options * isl_ast_print_options_set_print_for(__isl_take isl_ast_print_options *options, __isl_give isl_printer *(*print_for)(__isl_take isl_printer *p, __isl_take isl_ast_print_options *options, __isl_keep isl_ast_node *node, void *user), void *user)
Definition: isl_ast.c:135
isl_stat isl_options_set_ast_print_outermost_block(isl_ctx *ctx, int val)
__isl_export isl_bool isl_ast_node_for_is_degenerate(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1368
__isl_give isl_ast_expr * isl_ast_expr_or_else(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:772
__isl_give isl_ast_print_options * isl_ast_print_options_copy(__isl_keep isl_ast_print_options *options)
Definition: isl_ast.c:84
isl_stat isl_options_set_ast_always_print_block(isl_ctx *ctx, int val)
__isl_give isl_printer * isl_ast_op_type_set_print_name(__isl_take isl_printer *p, enum isl_ast_expr_op_type type, __isl_keep const char *name)
Definition: isl_ast.c:2267
int isl_options_get_ast_print_outermost_block(isl_ctx *ctx)
isl_ctx * isl_ast_print_options_get_ctx(__isl_keep isl_ast_print_options *options)
Definition: isl_ast.c:29
__isl_export __isl_give char * isl_ast_node_to_C_str(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:3923
__isl_export __isl_give isl_id * isl_ast_node_mark_get_id(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1640
__isl_give isl_val * isl_ast_expr_get_val(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:295
__isl_give isl_printer * isl_ast_node_print_macros(__isl_keep isl_ast_node *node, __isl_take isl_printer *p)
Definition: isl_ast.c:3891
const char * isl_options_get_ast_iterator_type(isl_ctx *ctx)
__isl_give isl_ast_expr * isl_ast_expr_and_then(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:755
__isl_export isl_bool isl_ast_node_if_has_else_node(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1490
__isl_give isl_ast_expr * isl_ast_expr_add(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:694
__isl_export __isl_give isl_ast_expr * isl_ast_node_for_get_iterator(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1375
__isl_give isl_ast_expr * isl_ast_expr_from_id(__isl_take isl_id *id)
Definition: isl_ast.c:541
isl_stat isl_options_set_ast_print_macro_once(isl_ctx *ctx, int val)
__isl_give isl_ast_expr * isl_ast_expr_sub(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:702
__isl_give isl_ast_expr * isl_ast_expr_pdiv_r(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:738
__isl_give isl_ast_expr * isl_ast_expr_set_op_arg(__isl_take isl_ast_expr *expr, int pos, __isl_take isl_ast_expr *arg)
Definition: isl_ast.c:462
__isl_give isl_id * isl_ast_node_get_annotation(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1704
__isl_give isl_ast_expr * isl_ast_expr_from_val(__isl_take isl_val *v)
Definition: isl_ast.c:589
__isl_constructor __isl_give isl_ast_node * isl_ast_node_user_from_expr(__isl_take isl_ast_expr *expr)
Definition: isl_ast.c:1006
isl_stat isl_ast_expr_foreach_ast_expr_op_type(__isl_keep isl_ast_expr *expr, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
Definition: isl_ast.c:3823
__isl_null isl_ast_print_options * isl_ast_print_options_free(__isl_take isl_ast_print_options *options)
Definition: isl_ast.c:94
__isl_null isl_ast_node * isl_ast_node_free(__isl_take isl_ast_node *node)
Definition: isl_ast.c:1180
__isl_give isl_ast_node * isl_ast_node_if_get_then(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1482
__isl_give isl_ast_expr * isl_ast_expr_lt(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:788
__isl_give char * isl_ast_expr_to_str(__isl_keep isl_ast_expr *expr)
__isl_export __isl_give isl_ast_node * isl_ast_node_if_get_then_node(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1472
__isl_give isl_ast_expr * isl_ast_expr_eq(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:812
__isl_give isl_ast_expr * isl_ast_expr_and(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:746
__isl_give isl_printer * isl_ast_expr_print_macros(__isl_keep isl_ast_expr *expr, __isl_take isl_printer *p)
Definition: isl_ast.c:3879
isl_bool isl_ast_node_if_has_else(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:1499
isl_ctx * isl_ast_node_get_ctx(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:902
__isl_give isl_printer * isl_ast_expr_op_type_set_print_name(__isl_take isl_printer *p, enum isl_ast_expr_op_type type, __isl_keep const char *name)
Definition: isl_ast.c:2240
__isl_give isl_printer * isl_printer_print_ast_expr(__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:2600
__isl_export __isl_give isl_ast_node * isl_ast_node_map_descendant_bottom_up(__isl_take isl_ast_node *node, __isl_give isl_ast_node *(*fn)(__isl_take isl_ast_node *node, void *user), void *user)
Definition: isl_ast.c:1944
__isl_give isl_ast_expr * isl_ast_expr_copy(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:195
isl_stat isl_ast_expr_foreach_ast_op_type(__isl_keep isl_ast_expr *expr, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
Definition: isl_ast.c:3837
__isl_export __isl_give char * isl_ast_expr_to_C_str(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:3902
__isl_give isl_ast_node * isl_ast_node_alloc_user(__isl_take isl_ast_expr *expr)
Definition: isl_ast.c:1030
isl_ast_expr_type
Definition: ast_type.h:75
@ isl_ast_expr_op
Definition: ast_type.h:77
isl_ast_node_type
Definition: ast_type.h:82
isl_ast_expr_op_type
Definition: ast_type.h:16
#define __isl_export
Definition: ctx.h:31
#define __isl_take
Definition: ctx.h:22
isl_stat
Definition: ctx.h:84
#define __isl_constructor
Definition: ctx.h:37
#define __isl_give
Definition: ctx.h:19
#define __isl_null
Definition: ctx.h:28
#define __isl_subclass(super)
Definition: ctx.h:40
#define __isl_keep
Definition: ctx.h:25
int isl_size
Definition: ctx.h:96
isl_bool
Definition: ctx.h:89
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
Definition: hmap.h:32
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
Definition: hmap.h:37
isl_stat isl_stat(*) void user)
Definition: hmap.h:39
enum isl_ast_expr_op_type isl_ast_expr_op_get_type(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:332
enum isl_ast_expr_type isl_ast_expr_get_type(__isl_keep isl_ast_expr *expr)
Definition: isl_ast.c:276
enum isl_ast_node_type isl_ast_node_get_type(__isl_keep isl_ast_node *node)
Definition: isl_ast.c:907
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
Definition: isl_map.c:70
enum isl_fold type
Definition: isl_test.c:4017
const char * p
Definition: isl_test.c:8643
const char * name
Definition: isl_test.c:10938
const char * arg
Definition: isl_test.c:774
#define ISL_DECLARE_LIST_FN(EL)
Definition: list.h:108
#define ISL_DECLARE_EXPORTED_LIST_FN(EL)
Definition: list.h:110