1#ifndef ISL_AST_TYPE_H
2#define ISL_AST_TYPE_H
3
4#include <isl/list.h>
5
6#if defined(__cplusplus)
7extern "C" {
8#endif
9
10struct __isl_export isl_ast_expr;
11typedef struct isl_ast_expr isl_ast_expr;
12
13struct __isl_export isl_ast_node;
14typedef struct isl_ast_node isl_ast_node;
15
16enum isl_ast_expr_op_type {
17 isl_ast_expr_op_error = -1,
18 isl_ast_expr_op_and,
19 isl_ast_expr_op_and_then,
20 isl_ast_expr_op_or,
21 isl_ast_expr_op_or_else,
22 isl_ast_expr_op_max,
23 isl_ast_expr_op_min,
24 isl_ast_expr_op_minus,
25 isl_ast_expr_op_add,
26 isl_ast_expr_op_sub,
27 isl_ast_expr_op_mul,
28 isl_ast_expr_op_div,
29 isl_ast_expr_op_fdiv_q, /* Round towards -infty */
30 isl_ast_expr_op_pdiv_q, /* Dividend is non-negative */
31 isl_ast_expr_op_pdiv_r, /* Dividend is non-negative */
32 isl_ast_expr_op_zdiv_r, /* Result only compared against zero */
33 isl_ast_expr_op_cond,
34 isl_ast_expr_op_select,
35 isl_ast_expr_op_eq,
36 isl_ast_expr_op_le,
37 isl_ast_expr_op_lt,
38 isl_ast_expr_op_ge,
39 isl_ast_expr_op_gt,
40 isl_ast_expr_op_call,
41 isl_ast_expr_op_access,
42 isl_ast_expr_op_member,
43 isl_ast_expr_op_address_of
44};
45
46#define isl_ast_op_type isl_ast_expr_op_type
47#define isl_ast_op_error isl_ast_expr_op_error
48#define isl_ast_op_and isl_ast_expr_op_and
49#define isl_ast_op_and_then isl_ast_expr_op_and_then
50#define isl_ast_op_or isl_ast_expr_op_or
51#define isl_ast_op_or_else isl_ast_expr_op_or_else
52#define isl_ast_op_max isl_ast_expr_op_max
53#define isl_ast_op_min isl_ast_expr_op_min
54#define isl_ast_op_minus isl_ast_expr_op_minus
55#define isl_ast_op_add isl_ast_expr_op_add
56#define isl_ast_op_sub isl_ast_expr_op_sub
57#define isl_ast_op_mul isl_ast_expr_op_mul
58#define isl_ast_op_div isl_ast_expr_op_div
59#define isl_ast_op_fdiv_q isl_ast_expr_op_fdiv_q
60#define isl_ast_op_pdiv_q isl_ast_expr_op_pdiv_q
61#define isl_ast_op_pdiv_r isl_ast_expr_op_pdiv_r
62#define isl_ast_op_zdiv_r isl_ast_expr_op_zdiv_r
63#define isl_ast_op_cond isl_ast_expr_op_cond
64#define isl_ast_op_select isl_ast_expr_op_select
65#define isl_ast_op_eq isl_ast_expr_op_eq
66#define isl_ast_op_le isl_ast_expr_op_le
67#define isl_ast_op_lt isl_ast_expr_op_lt
68#define isl_ast_op_ge isl_ast_expr_op_ge
69#define isl_ast_op_gt isl_ast_expr_op_gt
70#define isl_ast_op_call isl_ast_expr_op_call
71#define isl_ast_op_access isl_ast_expr_op_access
72#define isl_ast_op_member isl_ast_expr_op_member
73#define isl_ast_op_address_of isl_ast_expr_op_address_of
74
75enum isl_ast_expr_type {
76 isl_ast_expr_error = -1,
77 isl_ast_expr_op,
78 isl_ast_expr_id,
79 isl_ast_expr_int
80};
81
82enum isl_ast_node_type {
83 isl_ast_node_error = -1,
84 isl_ast_node_for = 1,
85 isl_ast_node_if,
86 isl_ast_node_block,
87 isl_ast_node_mark,
88 isl_ast_node_user
89};
90
91enum isl_ast_loop_type {
92 isl_ast_loop_error = -1,
93 isl_ast_loop_default = 0,
94 isl_ast_loop_atomic,
95 isl_ast_loop_unroll,
96 isl_ast_loop_separate
97};
98
99struct isl_ast_print_options;
100typedef struct isl_ast_print_options isl_ast_print_options;
101
102ISL_DECLARE_LIST_TYPE(ast_expr)
103ISL_DECLARE_EXPORTED_LIST_TYPE(ast_node)
104
105#if defined(__cplusplus)
106}
107#endif
108
109#endif
110

source code of polly/lib/External/isl/include/isl/ast_type.h