Polly 20.0.0git
isl_ast_private.h
Go to the documentation of this file.
1#ifndef ISL_AST_PRIVATE_H
2#define ISL_AST_PRIVATE_H
3
4#include <isl/aff.h>
5#include <isl/ast.h>
6#include <isl/set.h>
7#include <isl/map.h>
8#include <isl/vec.h>
9#include <isl/list.h>
10#include <isl/stream.h>
11
12#undef EL
13#define EL isl_ast_expr
14
15#include <isl_list_templ.h>
16
17/* An expression is either an integer, an identifier or an operation
18 * with zero or more arguments.
19 */
21 int ref;
22
24
26
27 union {
30 struct {
32 isl_ast_expr_list *args;
33 } op;
34 } u;
35};
36
39 enum isl_ast_expr_op_type op, int n_arg);
45
47
48#undef EL
49#define EL isl_ast_node
50
51#include <isl_list_templ.h>
52
53/* A node is either a block, an if, a for, a user node or a mark node.
54 * "else_node" is NULL if the if node does not have an else branch.
55 * "cond" and "inc" are NULL for degenerate for nodes.
56 * In case of a mark node, "mark" is the mark and "node" is the marked node.
57 */
59 int ref;
60
63
64 union {
65 struct {
66 isl_ast_node_list *children;
67 } b;
68 struct {
72 } i;
73 struct {
74 unsigned degenerate : 1;
80 } f;
81 struct {
83 } e;
84 struct {
87 } m;
88 } u;
89
91};
92
98 __isl_take isl_ast_node_list *list);
102 __isl_take isl_ast_node_list *list);
113
115
117 int ref;
119
122 __isl_keep isl_ast_node *node, void *user);
126 __isl_keep isl_ast_node *node, void *user);
128};
129
131 __isl_keep isl_ast_node_list *list, __isl_take isl_printer *p,
133
134#endif
isl_ast_expr_type
Definition: ast_type.h:75
isl_ast_node_type
Definition: ast_type.h:82
isl_ast_expr_op_type
Definition: ast_type.h:16
#define __isl_take
Definition: ctx.h:22
#define __isl_give
Definition: ctx.h:19
#define __isl_keep
Definition: ctx.h:25
isl_stat isl_stat(*) void user)
Definition: hmap.h:39
void GMPQAPI() init(mp_rat x)
static int n_arg(struct isl_arg *arg)
Definition: isl_arg.c:1222
__isl_give isl_printer * isl_ast_node_list_print(__isl_keep isl_ast_node_list *list, __isl_take isl_printer *p, __isl_keep isl_ast_print_options *options)
Definition: isl_ast.c:3268
__isl_give isl_ast_node * isl_ast_node_if_set_then(__isl_take isl_ast_node *node, __isl_take isl_ast_node *child)
__isl_give isl_ast_node * isl_ast_node_for_mark_degenerate(__isl_take isl_ast_node *node)
Definition: isl_ast.c:1358
__isl_give isl_ast_node * isl_ast_node_from_ast_node_list(__isl_take isl_ast_node_list *list)
Definition: isl_ast.c:1071
__isl_give isl_ast_expr * isl_ast_expr_op_add_arg(__isl_take isl_ast_expr *expr, __isl_take isl_ast_expr *arg)
Definition: isl_ast.c:448
__isl_give isl_ast_node * isl_ast_node_alloc_block(__isl_take isl_ast_node_list *list)
Definition: isl_ast.c:1061
__isl_give isl_ast_node * isl_ast_node_for_set_init(__isl_take isl_ast_node *node, __isl_take isl_ast_expr *init)
__isl_give isl_ast_expr * isl_ast_expr_alloc_int_si(isl_ctx *ctx, int i)
Definition: isl_ast.c:568
__isl_give isl_ast_node * isl_ast_node_alloc_for(__isl_take isl_id *id)
Definition: isl_ast.c:955
__isl_give isl_ast_expr * isl_ast_expr_alloc_binary(enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
Definition: isl_ast.c:666
__isl_give isl_ast_node * isl_stream_read_ast_node(__isl_keep isl_stream *s)
Definition: isl_ast.c:3505
__isl_give isl_ast_node * isl_ast_node_for_set_body(__isl_take isl_ast_node *node, __isl_take isl_ast_node *body)
__isl_give isl_ast_expr * isl_stream_read_ast_expr(__isl_keep isl_stream *s)
Definition: isl_ast.c:2754
__isl_give isl_ast_node * isl_ast_node_for_set_inc(__isl_take isl_ast_node *node, __isl_take isl_ast_expr *init)
__isl_give isl_ast_node * isl_ast_node_alloc_if(__isl_take isl_ast_expr *guard)
Definition: isl_ast.c:933
__isl_give isl_ast_node * isl_ast_node_alloc_mark(__isl_take isl_id *id, __isl_take isl_ast_node *node)
Definition: isl_ast.c:980
__isl_give isl_ast_node * isl_ast_node_for_set_cond(__isl_take isl_ast_node *node, __isl_take isl_ast_expr *init)
__isl_give isl_ast_expr * isl_ast_expr_alloc_op(isl_ctx *ctx, enum isl_ast_expr_op_type op, int n_arg)
Definition: isl_ast.c:186
enum isl_fold type
Definition: isl_test.c:4017
const char * p
Definition: isl_test.c:8643
__isl_give isl_val *(* op)(__isl_take isl_val *v)
Definition: isl_test.c:773
const char * arg
Definition: isl_test.c:774
enum isl_ast_expr_type type
enum isl_ast_expr_op_type op
union isl_ast_expr::@12 u
isl_ast_expr_list * args
isl_ctx * ctx
isl_ast_expr * guard
isl_ast_node * body
struct isl_ast_node::@14::@18 e
struct isl_ast_node::@14::@19 m
struct isl_ast_node::@14::@15 b
isl_id * annotation
isl_ast_expr * init
isl_ast_node * then
isl_ast_expr * iterator
struct isl_ast_node::@14::@16 i
union isl_ast_node::@14 u
isl_ast_node * node
isl_ast_node * else_node
isl_ctx * ctx
unsigned degenerate
isl_ast_expr * inc
isl_ast_expr * expr
struct isl_ast_node::@14::@17 f
isl_ast_node_list * children
enum isl_ast_node_type type
isl_ast_expr * cond