blob: 2877b8f85510c609a3ef4c4bad9a61ba7d3de4a9 [file] [log] [blame]
#ifndef ISL_AST_TYPE_H
#define ISL_AST_TYPE_H
#include <isl/list.h>
#if defined(__cplusplus)
extern "C" {
#endif
struct __isl_export isl_ast_expr;
typedef struct isl_ast_expr isl_ast_expr;
struct __isl_export isl_ast_node;
typedef struct isl_ast_node isl_ast_node;
enum isl_ast_expr_op_type {
isl_ast_expr_op_error = -1,
isl_ast_expr_op_and,
isl_ast_expr_op_and_then,
isl_ast_expr_op_or,
isl_ast_expr_op_or_else,
isl_ast_expr_op_max,
isl_ast_expr_op_min,
isl_ast_expr_op_minus,
isl_ast_expr_op_add,
isl_ast_expr_op_sub,
isl_ast_expr_op_mul,
isl_ast_expr_op_div,
isl_ast_expr_op_fdiv_q, /* Round towards -infty */
isl_ast_expr_op_pdiv_q, /* Dividend is non-negative */
isl_ast_expr_op_pdiv_r, /* Dividend is non-negative */
isl_ast_expr_op_zdiv_r, /* Result only compared against zero */
isl_ast_expr_op_cond,
isl_ast_expr_op_select,
isl_ast_expr_op_eq,
isl_ast_expr_op_le,
isl_ast_expr_op_lt,
isl_ast_expr_op_ge,
isl_ast_expr_op_gt,
isl_ast_expr_op_call,
isl_ast_expr_op_access,
isl_ast_expr_op_member,
isl_ast_expr_op_address_of
};
#define isl_ast_op_type isl_ast_expr_op_type
#define isl_ast_op_error isl_ast_expr_op_error
#define isl_ast_op_and isl_ast_expr_op_and
#define isl_ast_op_and_then isl_ast_expr_op_and_then
#define isl_ast_op_or isl_ast_expr_op_or
#define isl_ast_op_or_else isl_ast_expr_op_or_else
#define isl_ast_op_max isl_ast_expr_op_max
#define isl_ast_op_min isl_ast_expr_op_min
#define isl_ast_op_minus isl_ast_expr_op_minus
#define isl_ast_op_add isl_ast_expr_op_add
#define isl_ast_op_sub isl_ast_expr_op_sub
#define isl_ast_op_mul isl_ast_expr_op_mul
#define isl_ast_op_div isl_ast_expr_op_div
#define isl_ast_op_fdiv_q isl_ast_expr_op_fdiv_q
#define isl_ast_op_pdiv_q isl_ast_expr_op_pdiv_q
#define isl_ast_op_pdiv_r isl_ast_expr_op_pdiv_r
#define isl_ast_op_zdiv_r isl_ast_expr_op_zdiv_r
#define isl_ast_op_cond isl_ast_expr_op_cond
#define isl_ast_op_select isl_ast_expr_op_select
#define isl_ast_op_eq isl_ast_expr_op_eq
#define isl_ast_op_le isl_ast_expr_op_le
#define isl_ast_op_lt isl_ast_expr_op_lt
#define isl_ast_op_ge isl_ast_expr_op_ge
#define isl_ast_op_gt isl_ast_expr_op_gt
#define isl_ast_op_call isl_ast_expr_op_call
#define isl_ast_op_access isl_ast_expr_op_access
#define isl_ast_op_member isl_ast_expr_op_member
#define isl_ast_op_address_of isl_ast_expr_op_address_of
enum isl_ast_expr_type {
isl_ast_expr_error = -1,
isl_ast_expr_op,
isl_ast_expr_id,
isl_ast_expr_int
};
enum isl_ast_node_type {
isl_ast_node_error = -1,
isl_ast_node_for = 1,
isl_ast_node_if,
isl_ast_node_block,
isl_ast_node_mark,
isl_ast_node_user
};
enum isl_ast_loop_type {
isl_ast_loop_error = -1,
isl_ast_loop_default = 0,
isl_ast_loop_atomic,
isl_ast_loop_unroll,
isl_ast_loop_separate
};
struct isl_ast_print_options;
typedef struct isl_ast_print_options isl_ast_print_options;
ISL_DECLARE_LIST_TYPE(ast_expr)
ISL_DECLARE_EXPORTED_LIST_TYPE(ast_node)
#if defined(__cplusplus)
}
#endif
#endif