isl_mat_rank: extract out hermite_first_zero_col
[isl.git] / include / isl / ast_type.h
blob1e09b3b5536ebdf9275bd8468b7ef80ee7b04cbf
1 #ifndef ISL_AST_TYPE_H
2 #define ISL_AST_TYPE_H
4 #include <isl/list.h>
6 #if defined(__cplusplus)
7 extern "C" {
8 #endif
10 struct __isl_export isl_ast_expr;
11 typedef struct isl_ast_expr isl_ast_expr;
13 struct __isl_export isl_ast_node;
14 typedef struct isl_ast_node isl_ast_node;
16 enum isl_ast_op_type {
17 isl_ast_op_error = -1,
18 isl_ast_op_and,
19 isl_ast_op_and_then,
20 isl_ast_op_or,
21 isl_ast_op_or_else,
22 isl_ast_op_max,
23 isl_ast_op_min,
24 isl_ast_op_minus,
25 isl_ast_op_add,
26 isl_ast_op_sub,
27 isl_ast_op_mul,
28 isl_ast_op_div,
29 isl_ast_op_fdiv_q, /* Round towards -infty */
30 isl_ast_op_pdiv_q, /* Dividend is non-negative */
31 isl_ast_op_pdiv_r, /* Dividend is non-negative */
32 isl_ast_op_zdiv_r, /* Result only compared against zero */
33 isl_ast_op_cond,
34 isl_ast_op_select,
35 isl_ast_op_eq,
36 isl_ast_op_le,
37 isl_ast_op_lt,
38 isl_ast_op_ge,
39 isl_ast_op_gt,
40 isl_ast_op_call,
41 isl_ast_op_access,
42 isl_ast_op_member,
43 isl_ast_op_address_of
46 enum isl_ast_expr_type {
47 isl_ast_expr_error = -1,
48 isl_ast_expr_op,
49 isl_ast_expr_id,
50 isl_ast_expr_int
53 enum isl_ast_node_type {
54 isl_ast_node_error = -1,
55 isl_ast_node_for = 1,
56 isl_ast_node_if,
57 isl_ast_node_block,
58 isl_ast_node_mark,
59 isl_ast_node_user
62 enum isl_ast_loop_type {
63 isl_ast_loop_error = -1,
64 isl_ast_loop_default = 0,
65 isl_ast_loop_atomic,
66 isl_ast_loop_unroll,
67 isl_ast_loop_separate
70 struct isl_ast_print_options;
71 typedef struct isl_ast_print_options isl_ast_print_options;
73 ISL_DECLARE_LIST(ast_expr)
74 ISL_DECLARE_LIST(ast_node)
76 #if defined(__cplusplus)
78 #endif
80 #endif