Blame isl-0.14/include/isl/ast_type.h
|
Packit |
fb9d21 |
#ifndef ISL_AST_TYPE_H
|
|
Packit |
fb9d21 |
#define ISL_AST_TYPE_H
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
#include <isl/list.h>
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
#if defined(__cplusplus)
|
|
Packit |
fb9d21 |
extern "C" {
|
|
Packit |
fb9d21 |
#endif
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
struct isl_ast_expr;
|
|
Packit |
fb9d21 |
typedef struct isl_ast_expr isl_ast_expr;
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
struct isl_ast_node;
|
|
Packit |
fb9d21 |
typedef struct isl_ast_node isl_ast_node;
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
enum isl_ast_op_type {
|
|
Packit |
fb9d21 |
isl_ast_op_error = -1,
|
|
Packit |
fb9d21 |
isl_ast_op_and,
|
|
Packit |
fb9d21 |
isl_ast_op_and_then,
|
|
Packit |
fb9d21 |
isl_ast_op_or,
|
|
Packit |
fb9d21 |
isl_ast_op_or_else,
|
|
Packit |
fb9d21 |
isl_ast_op_max,
|
|
Packit |
fb9d21 |
isl_ast_op_min,
|
|
Packit |
fb9d21 |
isl_ast_op_minus,
|
|
Packit |
fb9d21 |
isl_ast_op_add,
|
|
Packit |
fb9d21 |
isl_ast_op_sub,
|
|
Packit |
fb9d21 |
isl_ast_op_mul,
|
|
Packit |
fb9d21 |
isl_ast_op_div,
|
|
Packit |
fb9d21 |
isl_ast_op_fdiv_q, /* Round towards -infty */
|
|
Packit |
fb9d21 |
isl_ast_op_pdiv_q, /* Dividend is non-negative */
|
|
Packit |
fb9d21 |
isl_ast_op_pdiv_r, /* Dividend is non-negative */
|
|
Packit |
fb9d21 |
isl_ast_op_cond,
|
|
Packit |
fb9d21 |
isl_ast_op_select,
|
|
Packit |
fb9d21 |
isl_ast_op_eq,
|
|
Packit |
fb9d21 |
isl_ast_op_le,
|
|
Packit |
fb9d21 |
isl_ast_op_lt,
|
|
Packit |
fb9d21 |
isl_ast_op_ge,
|
|
Packit |
fb9d21 |
isl_ast_op_gt,
|
|
Packit |
fb9d21 |
isl_ast_op_call,
|
|
Packit |
fb9d21 |
isl_ast_op_access,
|
|
Packit |
fb9d21 |
isl_ast_op_member,
|
|
Packit |
fb9d21 |
isl_ast_op_address_of
|
|
Packit |
fb9d21 |
};
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
enum isl_ast_expr_type {
|
|
Packit |
fb9d21 |
isl_ast_expr_error = -1,
|
|
Packit |
fb9d21 |
isl_ast_expr_op,
|
|
Packit |
fb9d21 |
isl_ast_expr_id,
|
|
Packit |
fb9d21 |
isl_ast_expr_int
|
|
Packit |
fb9d21 |
};
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
enum isl_ast_node_type {
|
|
Packit |
fb9d21 |
isl_ast_node_error = -1,
|
|
Packit |
fb9d21 |
isl_ast_node_for = 1,
|
|
Packit |
fb9d21 |
isl_ast_node_if,
|
|
Packit |
fb9d21 |
isl_ast_node_block,
|
|
Packit |
fb9d21 |
isl_ast_node_user
|
|
Packit |
fb9d21 |
};
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
struct isl_ast_print_options;
|
|
Packit |
fb9d21 |
typedef struct isl_ast_print_options isl_ast_print_options;
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
ISL_DECLARE_LIST(ast_expr)
|
|
Packit |
fb9d21 |
ISL_DECLARE_LIST(ast_node)
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
#if defined(__cplusplus)
|
|
Packit |
fb9d21 |
}
|
|
Packit |
fb9d21 |
#endif
|
|
Packit |
fb9d21 |
|
|
Packit |
fb9d21 |
#endif
|