Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef ISL_AST_TYPE_H
  2. #define ISL_AST_TYPE_H
  3.  
  4. #include <isl/list.h>
  5.  
  6. #if defined(__cplusplus)
  7. extern "C" {
  8. #endif
  9.  
  10. struct __isl_export isl_ast_expr;
  11. typedef struct isl_ast_expr isl_ast_expr;
  12.  
  13. struct __isl_export isl_ast_node;
  14. typedef struct isl_ast_node isl_ast_node;
  15.  
  16. enum 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.  
  75. enum 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.  
  82. enum 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.  
  91. enum 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.  
  99. struct isl_ast_print_options;
  100. typedef struct isl_ast_print_options isl_ast_print_options;
  101.  
  102. ISL_DECLARE_LIST_TYPE(ast_expr)
  103. ISL_DECLARE_EXPORTED_LIST_TYPE(ast_node)
  104.  
  105. #if defined(__cplusplus)
  106. }
  107. #endif
  108.  
  109. #endif
  110.