Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:12

0001 #ifndef ISL_AST_TYPE_H
0002 #define ISL_AST_TYPE_H
0003 
0004 #include <isl/list.h>
0005 
0006 #if defined(__cplusplus)
0007 extern "C" {
0008 #endif
0009 
0010 struct __isl_export isl_ast_expr;
0011 typedef struct isl_ast_expr isl_ast_expr;
0012 
0013 struct __isl_export isl_ast_node;
0014 typedef struct isl_ast_node isl_ast_node;
0015 
0016 enum isl_ast_expr_op_type {
0017     isl_ast_expr_op_error = -1,
0018     isl_ast_expr_op_and,
0019     isl_ast_expr_op_and_then,
0020     isl_ast_expr_op_or,
0021     isl_ast_expr_op_or_else,
0022     isl_ast_expr_op_max,
0023     isl_ast_expr_op_min,
0024     isl_ast_expr_op_minus,
0025     isl_ast_expr_op_add,
0026     isl_ast_expr_op_sub,
0027     isl_ast_expr_op_mul,
0028     isl_ast_expr_op_div,
0029     isl_ast_expr_op_fdiv_q, /* Round towards -infty */
0030     isl_ast_expr_op_pdiv_q, /* Dividend is non-negative */
0031     isl_ast_expr_op_pdiv_r, /* Dividend is non-negative */
0032     isl_ast_expr_op_zdiv_r, /* Result only compared against zero */
0033     isl_ast_expr_op_cond,
0034     isl_ast_expr_op_select,
0035     isl_ast_expr_op_eq,
0036     isl_ast_expr_op_le,
0037     isl_ast_expr_op_lt,
0038     isl_ast_expr_op_ge,
0039     isl_ast_expr_op_gt,
0040     isl_ast_expr_op_call,
0041     isl_ast_expr_op_access,
0042     isl_ast_expr_op_member,
0043     isl_ast_expr_op_address_of
0044 };
0045 
0046 #define isl_ast_op_type     isl_ast_expr_op_type
0047 #define isl_ast_op_error    isl_ast_expr_op_error
0048 #define isl_ast_op_and      isl_ast_expr_op_and
0049 #define isl_ast_op_and_then isl_ast_expr_op_and_then
0050 #define isl_ast_op_or       isl_ast_expr_op_or
0051 #define isl_ast_op_or_else  isl_ast_expr_op_or_else
0052 #define isl_ast_op_max      isl_ast_expr_op_max
0053 #define isl_ast_op_min      isl_ast_expr_op_min
0054 #define isl_ast_op_minus    isl_ast_expr_op_minus
0055 #define isl_ast_op_add      isl_ast_expr_op_add
0056 #define isl_ast_op_sub      isl_ast_expr_op_sub
0057 #define isl_ast_op_mul      isl_ast_expr_op_mul
0058 #define isl_ast_op_div      isl_ast_expr_op_div
0059 #define isl_ast_op_fdiv_q   isl_ast_expr_op_fdiv_q
0060 #define isl_ast_op_pdiv_q   isl_ast_expr_op_pdiv_q
0061 #define isl_ast_op_pdiv_r   isl_ast_expr_op_pdiv_r
0062 #define isl_ast_op_zdiv_r   isl_ast_expr_op_zdiv_r
0063 #define isl_ast_op_cond     isl_ast_expr_op_cond
0064 #define isl_ast_op_select   isl_ast_expr_op_select
0065 #define isl_ast_op_eq       isl_ast_expr_op_eq
0066 #define isl_ast_op_le       isl_ast_expr_op_le
0067 #define isl_ast_op_lt       isl_ast_expr_op_lt
0068 #define isl_ast_op_ge       isl_ast_expr_op_ge
0069 #define isl_ast_op_gt       isl_ast_expr_op_gt
0070 #define isl_ast_op_call     isl_ast_expr_op_call
0071 #define isl_ast_op_access   isl_ast_expr_op_access
0072 #define isl_ast_op_member   isl_ast_expr_op_member
0073 #define isl_ast_op_address_of   isl_ast_expr_op_address_of
0074 
0075 enum isl_ast_expr_type {
0076     isl_ast_expr_error = -1,
0077     isl_ast_expr_op,
0078     isl_ast_expr_id,
0079     isl_ast_expr_int
0080 };
0081 
0082 enum isl_ast_node_type {
0083     isl_ast_node_error = -1,
0084     isl_ast_node_for = 1,
0085     isl_ast_node_if,
0086     isl_ast_node_block,
0087     isl_ast_node_mark,
0088     isl_ast_node_user
0089 };
0090 
0091 enum isl_ast_loop_type {
0092     isl_ast_loop_error = -1,
0093     isl_ast_loop_default = 0,
0094     isl_ast_loop_atomic,
0095     isl_ast_loop_unroll,
0096     isl_ast_loop_separate
0097 };
0098 
0099 struct isl_ast_print_options;
0100 typedef struct isl_ast_print_options isl_ast_print_options;
0101 
0102 ISL_DECLARE_LIST_TYPE(ast_expr)
0103 ISL_DECLARE_EXPORTED_LIST_TYPE(ast_node)
0104 
0105 #if defined(__cplusplus)
0106 }
0107 #endif
0108 
0109 #endif