Polly 19.0.0git
Classes | Macros | Functions | Variables
isl_ast.c File Reference
#include <string.h>
#include <isl/id.h>
#include <isl/stream.h>
#include <isl/val.h>
#include <isl_ast_private.h>
#include <isl_list_templ.c>
#include "isl_ast_node_set_field_templ.c"
#include "extract_key.c"
#include <isl_list_read_yaml_templ.c>

Go to the source code of this file.

Classes

struct  isl_ast_node_preorder_data
 
struct  isl_ast_node_postorder_data
 
struct  isl_ast_expr_op_names
 
struct  isl_ast_expr_op_printed
 

Macros

#define EL_BASE   ast_expr
 
#define EL_BASE   ast_node
 
#define NODE_TYPE   for
 
#define FIELD_NAME   init
 
#define FIELD_TYPE   isl_ast_expr
 
#define FIELD   u.f.init
 
#define NODE_TYPE   for
 
#define FIELD_NAME   cond
 
#define FIELD_TYPE   isl_ast_expr
 
#define FIELD   u.f.cond
 
#define NODE_TYPE   for
 
#define FIELD_NAME   inc
 
#define FIELD_TYPE   isl_ast_expr
 
#define FIELD   u.f.inc
 
#define NODE_TYPE   for
 
#define FIELD_NAME   body
 
#define FIELD_TYPE   isl_ast_node
 
#define FIELD   u.f.body
 
#define NODE_TYPE   if
 
#define FIELD_NAME   then
 
#define FIELD_TYPE   isl_ast_node
 
#define FIELD   u.i.then
 
#define NODE_TYPE   if
 
#define FIELD_NAME   else_node
 
#define FIELD_TYPE   isl_ast_node
 
#define FIELD   u.i.else_node
 
#define NODE_TYPE   block
 
#define FIELD_NAME   children
 
#define FIELD_TYPE   isl_ast_node_list
 
#define FIELD   u.b.children
 
#define NODE_TYPE   mark
 
#define FIELD_NAME   node
 
#define FIELD_TYPE   isl_ast_node
 
#define FIELD   u.m.node
 
#define NODE_TYPE   any
 
#define FIELD_NAME   annotation
 
#define FIELD_TYPE   isl_id
 
#define FIELD   annotation
 
#define isl_ast_expr_op_last   isl_ast_expr_op_address_of
 
#define KEY   enum isl_ast_expr_op_type
 
#define KEY_ERROR   isl_ast_expr_op_error
 
#define KEY_END   (isl_ast_expr_op_address_of + 1)
 
#define KEY_STR   op_str
 
#define KEY_EXTRACT   extract_op_type
 
#define KEY_GET   get_op_type
 
#define EL_BASE   ast_expr
 
#define KEY   enum isl_ast_expr_type
 
#define KEY_ERROR   isl_ast_expr_error
 
#define KEY_END   (isl_ast_expr_int + 1)
 
#define KEY_STR   expr_str
 
#define KEY_EXTRACT   extract_expr_type
 
#define KEY_GET   get_expr_type
 
#define EL_BASE   ast_node
 
#define KEY   enum isl_ast_node_type
 
#define KEY_ERROR   isl_ast_node_error
 
#define KEY_END   (isl_ast_node_user + 1)
 
#define KEY_STR   node_first_str
 
#define KEY_EXTRACT   extract_node_type
 
#define KEY_GET   get_node_type
 
#define ISL_AST_MACRO_FDIV_Q   (1 << 0)
 
#define ISL_AST_MACRO_MIN   (1 << 1)
 
#define ISL_AST_MACRO_MAX   (1 << 2)
 
#define ISL_AST_MACRO_ALL
 

Functions

isl_ctxisl_ast_print_options_get_ctx (__isl_keep isl_ast_print_options *options)
 
__isl_give isl_ast_print_optionsisl_ast_print_options_alloc (isl_ctx *ctx)
 
__isl_give isl_ast_print_optionsisl_ast_print_options_dup (__isl_keep isl_ast_print_options *options)
 
__isl_give isl_ast_print_optionsisl_ast_print_options_cow (__isl_take isl_ast_print_options *options)
 
__isl_give isl_ast_print_optionsisl_ast_print_options_copy (__isl_keep isl_ast_print_options *options)
 
__isl_null isl_ast_print_optionsisl_ast_print_options_free (__isl_take isl_ast_print_options *options)
 
__isl_give isl_ast_print_optionsisl_ast_print_options_set_print_user (__isl_take isl_ast_print_options *options, __isl_give isl_printer *(*print_user)(__isl_take isl_printer *p, __isl_take isl_ast_print_options *options, __isl_keep isl_ast_node *node, void *user), void *user)
 
__isl_give isl_ast_print_optionsisl_ast_print_options_set_print_for (__isl_take isl_ast_print_options *options, __isl_give isl_printer *(*print_for)(__isl_take isl_printer *p, __isl_take isl_ast_print_options *options, __isl_keep isl_ast_node *node, void *user), void *user)
 
static __isl_give isl_ast_expralloc_op (enum isl_ast_expr_op_type op, __isl_take isl_ast_expr_list *args)
 
__isl_give isl_ast_exprisl_ast_expr_alloc_op (isl_ctx *ctx, enum isl_ast_expr_op_type op, int n_arg)
 
__isl_give isl_ast_exprisl_ast_expr_copy (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_ast_exprisl_ast_expr_dup (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_ast_exprisl_ast_expr_cow (__isl_take isl_ast_expr *expr)
 
__isl_null isl_ast_exprisl_ast_expr_free (__isl_take isl_ast_expr *expr)
 
isl_ctxisl_ast_expr_get_ctx (__isl_keep isl_ast_expr *expr)
 
enum isl_ast_expr_type isl_ast_expr_get_type (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_valisl_ast_expr_int_get_val (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_valisl_ast_expr_get_val (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_idisl_ast_expr_id_get_id (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_idisl_ast_expr_get_id (__isl_keep isl_ast_expr *expr)
 
static isl_stat isl_ast_expr_check_op (__isl_keep isl_ast_expr *expr)
 
enum isl_ast_expr_op_type isl_ast_expr_op_get_type (__isl_keep isl_ast_expr *expr)
 
enum isl_ast_expr_op_type isl_ast_expr_get_op_type (__isl_keep isl_ast_expr *expr)
 
isl_size isl_ast_expr_op_get_n_arg (__isl_keep isl_ast_expr *expr)
 
isl_size isl_ast_expr_get_op_n_arg (__isl_keep isl_ast_expr *expr)
 
__isl_give isl_ast_exprisl_ast_expr_op_get_arg (__isl_keep isl_ast_expr *expr, int pos)
 
__isl_give isl_ast_exprisl_ast_expr_get_op_arg (__isl_keep isl_ast_expr *expr, int pos)
 
static __isl_give isl_ast_expr_list * isl_ast_expr_op_get_args (__isl_keep isl_ast_expr *expr)
 
static __isl_give isl_ast_expr_list * isl_ast_expr_op_take_args (__isl_keep isl_ast_expr *expr)
 
static __isl_give isl_ast_exprisl_ast_expr_op_restore_args (__isl_take isl_ast_expr *expr, __isl_take isl_ast_expr_list *args)
 
__isl_give isl_ast_exprisl_ast_expr_op_add_arg (__isl_take isl_ast_expr *expr, __isl_take isl_ast_expr *arg)
 
__isl_give isl_ast_exprisl_ast_expr_set_op_arg (__isl_take isl_ast_expr *expr, int pos, __isl_take isl_ast_expr *arg)
 
static isl_bool isl_ast_expr_list_is_equal (__isl_keep isl_ast_expr_list *list1, __isl_keep isl_ast_expr_list *list2)
 
isl_bool isl_ast_expr_is_equal (__isl_keep isl_ast_expr *expr1, __isl_keep isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_from_id (__isl_take isl_id *id)
 
__isl_give isl_ast_exprisl_ast_expr_alloc_int_si (isl_ctx *ctx, int i)
 
__isl_give isl_ast_exprisl_ast_expr_from_val (__isl_take isl_val *v)
 
__isl_give isl_ast_exprisl_ast_expr_alloc_unary (enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *arg)
 
__isl_give isl_ast_exprisl_ast_expr_neg (__isl_take isl_ast_expr *arg)
 
__isl_give isl_ast_exprisl_ast_expr_address_of (__isl_take isl_ast_expr *expr)
 
__isl_give isl_ast_exprisl_ast_expr_alloc_binary (enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_add (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_sub (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_mul (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_div (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_pdiv_q (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_pdiv_r (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_and (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_and_then (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_or (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_or_else (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_le (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_lt (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_ge (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_gt (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
__isl_give isl_ast_exprisl_ast_expr_eq (__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
 
static __isl_give isl_ast_exprast_expr_with_arguments (enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *arg0, __isl_take isl_ast_expr_list *arguments)
 
__isl_give isl_ast_exprisl_ast_expr_access (__isl_take isl_ast_expr *array, __isl_take isl_ast_expr_list *indices)
 
__isl_give isl_ast_exprisl_ast_expr_call (__isl_take isl_ast_expr *function, __isl_take isl_ast_expr_list *arguments)
 
static __isl_give isl_ast_exprsubstitute_ids (__isl_take isl_ast_expr *expr, void *user)
 
__isl_give isl_ast_exprisl_ast_expr_substitute_ids (__isl_take isl_ast_expr *expr, __isl_take isl_id_to_ast_expr *id2expr)
 
isl_ctxisl_ast_node_get_ctx (__isl_keep isl_ast_node *node)
 
enum isl_ast_node_type isl_ast_node_get_type (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_alloc (isl_ctx *ctx, enum isl_ast_node_type type)
 
__isl_give isl_ast_nodeisl_ast_node_alloc_if (__isl_take isl_ast_expr *guard)
 
__isl_give isl_ast_nodeisl_ast_node_alloc_for (__isl_take isl_id *id)
 
__isl_give isl_ast_nodeisl_ast_node_alloc_mark (__isl_take isl_id *id, __isl_take isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_user_from_expr (__isl_take isl_ast_expr *expr)
 
__isl_give isl_ast_nodeisl_ast_node_alloc_user (__isl_take isl_ast_expr *expr)
 
__isl_give isl_ast_nodeisl_ast_node_block_from_children (__isl_take isl_ast_node_list *list)
 
__isl_give isl_ast_nodeisl_ast_node_alloc_block (__isl_take isl_ast_node_list *list)
 
__isl_give isl_ast_nodeisl_ast_node_from_ast_node_list (__isl_take isl_ast_node_list *list)
 
__isl_give isl_ast_nodeisl_ast_node_copy (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_dup (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_cow (__isl_take isl_ast_node *node)
 
__isl_null isl_ast_nodeisl_ast_node_free (__isl_take isl_ast_node *node)
 
static isl_stat isl_ast_node_check_type (__isl_keep isl_ast_node *node, enum isl_ast_node_type type, const char *msg)
 
static isl_stat isl_ast_node_check_block (__isl_keep isl_ast_node *node)
 
static isl_stat isl_ast_node_check_if (__isl_keep isl_ast_node *node)
 
static isl_stat isl_ast_node_check_for (__isl_keep isl_ast_node *node)
 
static isl_stat isl_ast_node_check_mark (__isl_keep isl_ast_node *node)
 
static isl_stat isl_ast_node_check_user (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_for_take_body (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_for_restore_body (__isl_take isl_ast_node *node, __isl_take isl_ast_node *body)
 
__isl_give isl_ast_nodeisl_ast_node_for_get_body (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_for_mark_degenerate (__isl_take isl_ast_node *node)
 
isl_bool isl_ast_node_for_is_degenerate (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_exprisl_ast_node_for_get_iterator (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_exprisl_ast_node_for_get_init (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_exprisl_ast_node_for_get_cond (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_exprisl_ast_node_for_get_inc (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_if_take_then_node (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_if_restore_then_node (__isl_take isl_ast_node *node, __isl_take isl_ast_node *child)
 
__isl_give isl_ast_nodeisl_ast_node_if_get_then_node (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_if_get_then (__isl_keep isl_ast_node *node)
 
isl_bool isl_ast_node_if_has_else_node (__isl_keep isl_ast_node *node)
 
isl_bool isl_ast_node_if_has_else (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_if_get_else_node (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_if_get_else (__isl_keep isl_ast_node *node)
 
static static __isl_give isl_ast_nodeisl_ast_node_if_take_else_node (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_if_restore_else_node (__isl_take isl_ast_node *node, __isl_take isl_ast_node *child)
 
__isl_give isl_ast_exprisl_ast_node_if_get_cond (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_node_list * isl_ast_node_block_get_children (__isl_keep isl_ast_node *node)
 
static static __isl_give isl_ast_node_list * isl_ast_node_block_take_children (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_block_restore_children (__isl_take isl_ast_node *node, __isl_take isl_ast_node_list *children)
 
__isl_give isl_ast_exprisl_ast_node_user_get_expr (__isl_keep isl_ast_node *node)
 
__isl_give isl_idisl_ast_node_mark_get_id (__isl_keep isl_ast_node *node)
 
__isl_give isl_ast_nodeisl_ast_node_mark_get_node (__isl_keep isl_ast_node *node)
 
static static __isl_give isl_ast_nodeisl_ast_node_mark_take_node (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_mark_restore_node (__isl_take isl_ast_node *node, __isl_take isl_ast_node *child)
 
__isl_give isl_idisl_ast_node_get_annotation (__isl_keep isl_ast_node *node)
 
static isl_stat isl_ast_node_check_any (__isl_keep isl_ast_node *node)
 
static __isl_give isl_ast_nodeisl_ast_node_set_annotation (__isl_take isl_ast_node *node, __isl_take isl_id *annotation)
 
static __isl_give isl_ast_nodetraverse (__isl_take isl_ast_node *node, __isl_give isl_ast_node *(*enter)(__isl_take isl_ast_node *node, int *more, void *user), __isl_give isl_ast_node *(*leave)(__isl_take isl_ast_node *node, void *user), void *user)
 
static __isl_give isl_ast_node_list * traverse_list (__isl_take isl_ast_node_list *list, __isl_give isl_ast_node *(*enter)(__isl_take isl_ast_node *node, int *more, void *user), __isl_give isl_ast_node *(*leave)(__isl_take isl_ast_node *node, void *user), void *user)
 
static __isl_give isl_ast_nodepreorder_enter (__isl_take isl_ast_node *node, int *more, void *user)
 
static __isl_give isl_ast_nodepreorder_leave (__isl_take isl_ast_node *node, void *user)
 
isl_stat isl_ast_node_foreach_descendant_top_down (__isl_keep isl_ast_node *node, isl_bool(*fn)(__isl_keep isl_ast_node *node, void *user), void *user)
 
static __isl_give isl_ast_nodepostorder_enter (__isl_take isl_ast_node *node, int *more, void *user)
 
static __isl_give isl_ast_nodepostorder_leave (__isl_take isl_ast_node *node, void *user)
 
__isl_give isl_ast_nodeisl_ast_node_map_descendant_bottom_up (__isl_take isl_ast_node *node, __isl_give isl_ast_node *(*fn)(__isl_take isl_ast_node *node, void *user), void *user)
 
static int is_and (enum isl_ast_expr_op_type op)
 
static int is_or (enum isl_ast_expr_op_type op)
 
static int is_add_sub (enum isl_ast_expr_op_type op)
 
static int is_div_mod (enum isl_ast_expr_op_type op)
 
static __isl_give isl_printerprint_ast_expr_c (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
static int sub_expr_need_parens (enum isl_ast_expr_op_type op, __isl_keep isl_ast_expr *expr, int left)
 
static __isl_give isl_printerprint_sub_expr_c (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr, int pos, int left)
 
static void * create_names (isl_ctx *ctx)
 
static void free_names (void *user)
 
static __isl_give isl_idnames_id (isl_ctx *ctx)
 
static __isl_give isl_printeralloc_note (__isl_take isl_printer *p, __isl_keep isl_id *id, void *(*note_create)(isl_ctx *), void(*note_free)(void *))
 
static __isl_give isl_printeralloc_names (__isl_take isl_printer *p, __isl_keep isl_id *id)
 
static void * get_note (__isl_keep isl_printer *p, __isl_keep isl_id *id)
 
__isl_give isl_printerisl_ast_expr_op_type_set_print_name (__isl_take isl_printer *p, enum isl_ast_expr_op_type type, __isl_keep const char *name)
 
__isl_give isl_printerisl_ast_op_type_set_print_name (__isl_take isl_printer *p, enum isl_ast_expr_op_type type, __isl_keep const char *name)
 
static const char * get_op_str_c (__isl_keep isl_printer *p, enum isl_ast_expr_op_type type)
 
static __isl_give isl_printerprint_at_c (__isl_take isl_printer *p, __isl_keep isl_ast_expr_list *list, int pos)
 
static __isl_give isl_printerprint_min_max_c (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
static __isl_give isl_printerprint_call_c (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
static __isl_give isl_printerprint_access_c (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
static __isl_give isl_printerprint_ast_expr_isl (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
static __isl_give isl_printerprint_arguments (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
__isl_give isl_printerisl_printer_print_ast_expr (__isl_take isl_printer *p, __isl_keep isl_ast_expr *expr)
 
static __isl_give char * next_key (__isl_keep isl_stream *s)
 
static isl_stat eat_key (__isl_keep isl_stream *s, const char *expected)
 
static __isl_give isl_ast_exprread_op (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_exprread_id (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_exprread_int (__isl_keep isl_stream *s)
 
__isl_give isl_ast_exprisl_stream_read_ast_expr (__isl_keep isl_stream *s)
 
static __isl_give isl_printerprint_ast_node_isl (__isl_take isl_printer *p, __isl_keep isl_ast_node *node)
 
static __isl_give isl_printerprint_ast_node_list (__isl_take isl_printer *p, __isl_keep isl_ast_node_list *list)
 
static int need_block (__isl_keep isl_ast_node *node)
 
static __isl_give isl_printerprint_ast_node_c (__isl_take isl_printer *p, __isl_keep isl_ast_node *node, __isl_keep isl_ast_print_options *options, int in_block, int in_list)
 
static __isl_give isl_printerprint_if_c (__isl_take isl_printer *p, __isl_keep isl_ast_node *node, __isl_keep isl_ast_print_options *options, int new_line, int force_block)
 
static __isl_give isl_printerprint_body_c (__isl_take isl_printer *p, __isl_keep isl_ast_node *node, __isl_keep isl_ast_node *else_node, __isl_keep isl_ast_print_options *options, int force_block)
 
static __isl_give isl_printerstart_block (__isl_take isl_printer *p)
 
static __isl_give isl_printerend_block (__isl_take isl_printer *p)
 
static __isl_give isl_printerprint_for_c (__isl_take isl_printer *p, __isl_keep isl_ast_node *node, __isl_keep isl_ast_print_options *options, int in_block, int in_list)
 
__isl_give isl_printerisl_ast_node_for_print (__isl_keep isl_ast_node *node, __isl_take isl_printer *p, __isl_take isl_ast_print_options *options)
 
__isl_give isl_printerisl_ast_node_if_print (__isl_keep isl_ast_node *node, __isl_take isl_printer *p, __isl_take isl_ast_print_options *options)
 
__isl_give isl_printerisl_ast_node_print (__isl_keep isl_ast_node *node, __isl_take isl_printer *p, __isl_take isl_ast_print_options *options)
 
__isl_give isl_printerisl_printer_print_ast_node (__isl_take isl_printer *p, __isl_keep isl_ast_node *node)
 
__isl_give isl_printerisl_ast_node_list_print (__isl_keep isl_ast_node_list *list, __isl_take isl_printer *p, __isl_keep isl_ast_print_options *options)
 
static isl_bool next_is_sequence (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_noderead_block (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_noderead_body (__isl_keep isl_stream *s, __isl_take isl_ast_node *node)
 
static __isl_give isl_ast_noderead_for (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_noderead_mark (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_noderead_user (__isl_keep isl_stream *s)
 
static __isl_give isl_ast_noderead_if (__isl_keep isl_stream *s)
 
__isl_give isl_ast_nodeisl_stream_read_ast_node (__isl_keep isl_stream *s)
 
static int ast_expr_required_macros (__isl_keep isl_ast_expr *expr, int macros)
 
static isl_stat entry_required_macros (__isl_take isl_ast_expr *expr, void *user)
 
static int ast_node_list_required_macros (__isl_keep isl_ast_node_list *list, int macros)
 
static int ast_node_required_macros (__isl_keep isl_ast_node *node, int macros)
 
static void * create_printed (isl_ctx *ctx)
 
static void free_printed (void *user)
 
static __isl_give isl_printeralloc_printed (__isl_take isl_printer *p, __isl_keep isl_id *id)
 
static __isl_give isl_idprinted_id (isl_ctx *ctx)
 
static isl_bool already_printed_once (__isl_keep isl_printer *p, enum isl_ast_expr_op_type type)
 
__isl_give isl_printerisl_ast_expr_op_type_print_macro (enum isl_ast_expr_op_type type, __isl_take isl_printer *p)
 
__isl_give isl_printerisl_ast_op_type_print_macro (enum isl_ast_expr_op_type type, __isl_take isl_printer *p)
 
static isl_stat foreach_ast_expr_op_type (int macros, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
 
isl_stat isl_ast_expr_foreach_ast_expr_op_type (__isl_keep isl_ast_expr *expr, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
 
isl_stat isl_ast_expr_foreach_ast_op_type (__isl_keep isl_ast_expr *expr, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
 
isl_stat isl_ast_node_foreach_ast_expr_op_type (__isl_keep isl_ast_node *node, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
 
isl_stat isl_ast_node_foreach_ast_op_type (__isl_keep isl_ast_node *node, isl_stat(*fn)(enum isl_ast_expr_op_type type, void *user), void *user)
 
static isl_stat ast_op_type_print_macro (enum isl_ast_expr_op_type type, void *user)
 
__isl_give isl_printerisl_ast_expr_print_macros (__isl_keep isl_ast_expr *expr, __isl_take isl_printer *p)
 
__isl_give isl_printerisl_ast_node_print_macros (__isl_keep isl_ast_node *node, __isl_take isl_printer *p)
 
__isl_give char * isl_ast_expr_to_C_str (__isl_keep isl_ast_expr *expr)
 
__isl_give char * isl_ast_node_to_C_str (__isl_keep isl_ast_node *node)
 

Variables

static char * op_str_c []
 
static int op_prec []
 
static int op_left []
 
static char * op_str []
 
static char * expr_str []
 
static char * node_first_str []
 

Macro Definition Documentation

◆ EL_BASE [1/4]

#define EL_BASE   ast_expr

Definition at line 3305 of file isl_ast.c.

◆ EL_BASE [2/4]

#define EL_BASE   ast_node

Definition at line 3305 of file isl_ast.c.

◆ EL_BASE [3/4]

#define EL_BASE   ast_expr

Definition at line 3305 of file isl_ast.c.

◆ EL_BASE [4/4]

#define EL_BASE   ast_node

Definition at line 3305 of file isl_ast.c.

◆ FIELD [1/9]

#define FIELD   u.f.init

Definition at line 1724 of file isl_ast.c.

◆ FIELD [2/9]

#define FIELD   u.f.cond

Definition at line 1724 of file isl_ast.c.

◆ FIELD [3/9]

#define FIELD   u.f.inc

Definition at line 1724 of file isl_ast.c.

◆ FIELD [4/9]

#define FIELD   u.f.body

Definition at line 1724 of file isl_ast.c.

◆ FIELD [5/9]

#define FIELD   u.i.then

Definition at line 1724 of file isl_ast.c.

◆ FIELD [6/9]

#define FIELD   u.i.else_node

Definition at line 1724 of file isl_ast.c.

◆ FIELD [7/9]

#define FIELD   u.b.children

Definition at line 1724 of file isl_ast.c.

◆ FIELD [8/9]

#define FIELD   u.m.node

Definition at line 1724 of file isl_ast.c.

◆ FIELD [9/9]

#define FIELD   annotation

Definition at line 1724 of file isl_ast.c.

◆ FIELD_NAME [1/9]

#define FIELD_NAME   init

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [2/9]

#define FIELD_NAME   cond

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [3/9]

#define FIELD_NAME   inc

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [4/9]

#define FIELD_NAME   body

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [5/9]

#define FIELD_NAME   then

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [6/9]

#define FIELD_NAME   else_node

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [7/9]

#define FIELD_NAME   children

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [8/9]

#define FIELD_NAME   node

Definition at line 1720 of file isl_ast.c.

◆ FIELD_NAME [9/9]

#define FIELD_NAME   annotation

Definition at line 1720 of file isl_ast.c.

◆ FIELD_TYPE [1/9]

#define FIELD_TYPE   isl_ast_expr

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [2/9]

#define FIELD_TYPE   isl_ast_expr

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [3/9]

#define FIELD_TYPE   isl_ast_expr

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [4/9]

#define FIELD_TYPE   isl_ast_node

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [5/9]

#define FIELD_TYPE   isl_ast_node

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [6/9]

#define FIELD_TYPE   isl_ast_node

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [7/9]

#define FIELD_TYPE   isl_ast_node_list

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [8/9]

#define FIELD_TYPE   isl_ast_node

Definition at line 1722 of file isl_ast.c.

◆ FIELD_TYPE [9/9]

#define FIELD_TYPE   isl_id

Definition at line 1722 of file isl_ast.c.

◆ isl_ast_expr_op_last

#define isl_ast_expr_op_last   isl_ast_expr_op_address_of

Definition at line 2137 of file isl_ast.c.

◆ ISL_AST_MACRO_ALL

#define ISL_AST_MACRO_ALL
Value:
#define ISL_AST_MACRO_MAX
Definition: isl_ast.c:3563
#define ISL_AST_MACRO_MIN
Definition: isl_ast.c:3562
#define ISL_AST_MACRO_FDIV_Q
Definition: isl_ast.c:3561

Definition at line 3564 of file isl_ast.c.

◆ ISL_AST_MACRO_FDIV_Q

#define ISL_AST_MACRO_FDIV_Q   (1 << 0)

Definition at line 3561 of file isl_ast.c.

◆ ISL_AST_MACRO_MAX

#define ISL_AST_MACRO_MAX   (1 << 2)

Definition at line 3563 of file isl_ast.c.

◆ ISL_AST_MACRO_MIN

#define ISL_AST_MACRO_MIN   (1 << 1)

Definition at line 3562 of file isl_ast.c.

◆ KEY [1/3]

#define KEY   enum isl_ast_expr_op_type

Definition at line 3334 of file isl_ast.c.

◆ KEY [2/3]

#define KEY   enum isl_ast_expr_type

Definition at line 3334 of file isl_ast.c.

◆ KEY [3/3]

#define KEY   enum isl_ast_node_type

Definition at line 3334 of file isl_ast.c.

◆ KEY_END [1/3]

#define KEY_END   (isl_ast_expr_op_address_of + 1)

Definition at line 3338 of file isl_ast.c.

◆ KEY_END [2/3]

#define KEY_END   (isl_ast_expr_int + 1)

Definition at line 3338 of file isl_ast.c.

◆ KEY_END [3/3]

#define KEY_END   (isl_ast_node_user + 1)

Definition at line 3338 of file isl_ast.c.

◆ KEY_ERROR [1/3]

#define KEY_ERROR   isl_ast_expr_op_error

Definition at line 3336 of file isl_ast.c.

◆ KEY_ERROR [2/3]

#define KEY_ERROR   isl_ast_expr_error

Definition at line 3336 of file isl_ast.c.

◆ KEY_ERROR [3/3]

#define KEY_ERROR   isl_ast_node_error

Definition at line 3336 of file isl_ast.c.

◆ KEY_EXTRACT [1/3]

#define KEY_EXTRACT   extract_op_type

Definition at line 3342 of file isl_ast.c.

◆ KEY_EXTRACT [2/3]

#define KEY_EXTRACT   extract_expr_type

Definition at line 3342 of file isl_ast.c.

◆ KEY_EXTRACT [3/3]

#define KEY_EXTRACT   extract_node_type

Definition at line 3342 of file isl_ast.c.

◆ KEY_GET [1/3]

#define KEY_GET   get_op_type

Definition at line 3344 of file isl_ast.c.

◆ KEY_GET [2/3]

#define KEY_GET   get_expr_type

Definition at line 3344 of file isl_ast.c.

◆ KEY_GET [3/3]

#define KEY_GET   get_node_type

Definition at line 3344 of file isl_ast.c.

◆ KEY_STR [1/3]

#define KEY_STR   op_str

Definition at line 3340 of file isl_ast.c.

◆ KEY_STR [2/3]

#define KEY_STR   expr_str

Definition at line 3340 of file isl_ast.c.

◆ KEY_STR [3/3]

#define KEY_STR   node_first_str

Definition at line 3340 of file isl_ast.c.

◆ NODE_TYPE [1/9]

#define NODE_TYPE   for

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [2/9]

#define NODE_TYPE   for

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [3/9]

#define NODE_TYPE   for

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [4/9]

#define NODE_TYPE   for

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [5/9]

#define NODE_TYPE   if

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [6/9]

#define NODE_TYPE   if

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [7/9]

#define NODE_TYPE   block

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [8/9]

#define NODE_TYPE   mark

Definition at line 1718 of file isl_ast.c.

◆ NODE_TYPE [9/9]

#define NODE_TYPE   any

Definition at line 1718 of file isl_ast.c.

Function Documentation

◆ alloc_names()

static __isl_give isl_printer * alloc_names ( __isl_take isl_printer p,
__isl_keep isl_id id 
)
static

Definition at line 2215 of file isl_ast.c.

References alloc_note(), create_names(), free_names(), and p.

Referenced by isl_ast_expr_op_type_set_print_name().

◆ alloc_note()

static __isl_give isl_printer * alloc_note ( __isl_take isl_printer p,
__isl_keep isl_id id,
void *(*)(isl_ctx *)  note_create,
void(*)(void *)  note_free 
)
static

◆ alloc_op()

static __isl_give isl_ast_expr * alloc_op ( enum isl_ast_expr_op_type  op,
__isl_take isl_ast_expr_list *  args 
)
static

◆ alloc_printed()

static __isl_give isl_printer * alloc_printed ( __isl_take isl_printer p,
__isl_keep isl_id id 
)
static

Definition at line 3691 of file isl_ast.c.

References alloc_note(), create_printed(), free_printed(), and p.

Referenced by already_printed_once().

◆ already_printed_once()

static isl_bool already_printed_once ( __isl_keep isl_printer p,
enum isl_ast_expr_op_type  type 
)
static

◆ ast_expr_required_macros()

static int ast_expr_required_macros ( __isl_keep isl_ast_expr expr,
int  macros 
)
static

◆ ast_expr_with_arguments()

static __isl_give isl_ast_expr * ast_expr_with_arguments ( enum isl_ast_expr_op_type  type,
__isl_take isl_ast_expr arg0,
__isl_take isl_ast_expr_list *  arguments 
)
static

Definition at line 821 of file isl_ast.c.

References alloc_op(), and type.

Referenced by isl_ast_expr_access(), and isl_ast_expr_call().

◆ ast_node_list_required_macros()

static int ast_node_list_required_macros ( __isl_keep isl_ast_node_list *  list,
int  macros 
)
static

Definition at line 3656 of file isl_ast.c.

References ast_node_required_macros().

Referenced by ast_node_required_macros().

◆ ast_node_required_macros()

static int ast_node_required_macros ( __isl_keep isl_ast_node node,
int  macros 
)
static

◆ ast_op_type_print_macro()

static isl_stat ast_op_type_print_macro ( enum isl_ast_expr_op_type  type,
void *  user 
)
static

◆ create_names()

static void * create_names ( isl_ctx ctx)
static

Definition at line 2150 of file isl_ast.c.

References isl_calloc_type.

Referenced by alloc_names().

◆ create_printed()

static void * create_printed ( isl_ctx ctx)
static

Definition at line 3677 of file isl_ast.c.

References isl_calloc_type.

Referenced by alloc_printed().

◆ eat_key()

static isl_stat eat_key ( __isl_keep isl_stream s,
const char *  expected 
)
static

◆ end_block()

static __isl_give isl_printer * end_block ( __isl_take isl_printer p)
static

◆ entry_required_macros()

static isl_stat entry_required_macros ( __isl_take isl_ast_expr expr,
void *  user 
)
static

Definition at line 3573 of file isl_ast.c.

References ast_expr_required_macros(), isl_ast_expr_free(), isl_stat_ok, and user.

Referenced by ast_expr_required_macros().

◆ foreach_ast_expr_op_type()

static isl_stat foreach_ast_expr_op_type ( int  macros,
isl_stat(*)(enum isl_ast_expr_op_type type, void *user fn,
void *  user 
)
static

◆ free_names()

static void free_names ( void *  user)
static

Definition at line 2158 of file isl_ast.c.

References isl_ast_expr_op_last, isl_ast_expr_op_names::op_str, and user.

Referenced by alloc_names().

◆ free_printed()

static void free_printed ( void *  user)
static

Definition at line 3684 of file isl_ast.c.

References user.

Referenced by alloc_printed().

◆ get_note()

static void * get_note ( __isl_keep isl_printer p,
__isl_keep isl_id id 
)
static

◆ get_op_str_c()

static const char * get_op_str_c ( __isl_keep isl_printer p,
enum isl_ast_expr_op_type  type 
)
static

◆ is_add_sub()

static int is_add_sub ( enum isl_ast_expr_op_type  op)
static

Definition at line 2055 of file isl_ast.c.

References isl_ast_expr_op_add, isl_ast_expr_op_sub, and op.

Referenced by sub_expr_need_parens().

◆ is_and()

static int is_and ( enum isl_ast_expr_op_type  op)
static

Definition at line 2045 of file isl_ast.c.

References isl_ast_expr_op_and, isl_ast_expr_op_and_then, and op.

Referenced by sub_expr_need_parens().

◆ is_div_mod()

static int is_div_mod ( enum isl_ast_expr_op_type  op)
static

Definition at line 2060 of file isl_ast.c.

References isl_ast_expr_op_div, isl_ast_expr_op_pdiv_r, isl_ast_expr_op_zdiv_r, and op.

Referenced by sub_expr_need_parens().

◆ is_or()

static int is_or ( enum isl_ast_expr_op_type  op)
static

Definition at line 2050 of file isl_ast.c.

References isl_ast_expr_op_or, isl_ast_expr_op_or_else, and op.

Referenced by sub_expr_need_parens().

◆ isl_ast_expr_access()

__isl_give isl_ast_expr * isl_ast_expr_access ( __isl_take isl_ast_expr array,
__isl_take isl_ast_expr_list *  indices 
)

Definition at line 832 of file isl_ast.c.

References ast_expr_with_arguments(), and isl_ast_expr_op_access.

◆ isl_ast_expr_add()

__isl_give isl_ast_expr * isl_ast_expr_add ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 694 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_add.

Referenced by isl::ast_expr::add(), ast_expr_add(), and test_ast().

◆ isl_ast_expr_address_of()

__isl_give isl_ast_expr * isl_ast_expr_address_of ( __isl_take isl_ast_expr expr)

◆ isl_ast_expr_alloc_binary()

__isl_give isl_ast_expr * isl_ast_expr_alloc_binary ( enum isl_ast_expr_op_type  type,
__isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

◆ isl_ast_expr_alloc_int_si()

__isl_give isl_ast_expr * isl_ast_expr_alloc_int_si ( isl_ctx ctx,
int  i 
)

◆ isl_ast_expr_alloc_op()

__isl_give isl_ast_expr * isl_ast_expr_alloc_op ( isl_ctx ctx,
enum isl_ast_expr_op_type  op,
int  n_arg 
)

◆ isl_ast_expr_alloc_unary()

__isl_give isl_ast_expr * isl_ast_expr_alloc_unary ( enum isl_ast_expr_op_type  type,
__isl_take isl_ast_expr arg 
)

◆ isl_ast_expr_and()

__isl_give isl_ast_expr * isl_ast_expr_and ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

◆ isl_ast_expr_and_then()

__isl_give isl_ast_expr * isl_ast_expr_and_then ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 755 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_and_then.

◆ isl_ast_expr_call()

__isl_give isl_ast_expr * isl_ast_expr_call ( __isl_take isl_ast_expr function,
__isl_take isl_ast_expr_list *  arguments 
)

Definition at line 841 of file isl_ast.c.

References ast_expr_with_arguments(), function, and isl_ast_expr_op_call.

◆ isl_ast_expr_check_op()

static isl_stat isl_ast_expr_check_op ( __isl_keep isl_ast_expr expr)
static

◆ isl_ast_expr_copy()

__isl_give isl_ast_expr * isl_ast_expr_copy ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_cow()

__isl_give isl_ast_expr * isl_ast_expr_cow ( __isl_take isl_ast_expr expr)

Definition at line 232 of file isl_ast.c.

References isl_ast_expr_dup(), and isl_ast_expr::ref.

Referenced by isl_ast_expr_op_restore_args().

◆ isl_ast_expr_div()

__isl_give isl_ast_expr * isl_ast_expr_div ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 718 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_div.

◆ isl_ast_expr_dup()

__isl_give isl_ast_expr * isl_ast_expr_dup ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_eq()

__isl_give isl_ast_expr * isl_ast_expr_eq ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 812 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_eq.

Referenced by isl::ast_expr::eq().

◆ isl_ast_expr_foreach_ast_expr_op_type()

isl_stat isl_ast_expr_foreach_ast_expr_op_type ( __isl_keep isl_ast_expr expr,
isl_stat(*)(enum isl_ast_expr_op_type type, void *user fn,
void *  user 
)

◆ isl_ast_expr_foreach_ast_op_type()

isl_stat isl_ast_expr_foreach_ast_op_type ( __isl_keep isl_ast_expr expr,
isl_stat(*)(enum isl_ast_expr_op_type type, void *user fn,
void *  user 
)

Definition at line 3837 of file isl_ast.c.

References fn, isl_ast_expr_foreach_ast_expr_op_type(), and user.

◆ isl_ast_expr_free()

__isl_null isl_ast_expr * isl_ast_expr_free ( __isl_take isl_ast_expr expr)

◆ isl_ast_expr_from_id()

__isl_give isl_ast_expr * isl_ast_expr_from_id ( __isl_take isl_id id)

◆ isl_ast_expr_from_val()

__isl_give isl_ast_expr * isl_ast_expr_from_val ( __isl_take isl_val v)

◆ isl_ast_expr_ge()

__isl_give isl_ast_expr * isl_ast_expr_ge ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 796 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_ge.

◆ isl_ast_expr_get_ctx()

isl_ctx * isl_ast_expr_get_ctx ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_get_id()

__isl_give isl_id * isl_ast_expr_get_id ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_get_op_arg()

__isl_give isl_ast_expr * isl_ast_expr_get_op_arg ( __isl_keep isl_ast_expr expr,
int  pos 
)

◆ isl_ast_expr_get_op_n_arg()

isl_size isl_ast_expr_get_op_n_arg ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_get_op_type()

enum isl_ast_expr_op_type isl_ast_expr_get_op_type ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_get_type()

enum isl_ast_expr_type isl_ast_expr_get_type ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_get_val()

__isl_give isl_val * isl_ast_expr_get_val ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_gt()

__isl_give isl_ast_expr * isl_ast_expr_gt ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 804 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_gt.

◆ isl_ast_expr_id_get_id()

__isl_give isl_id * isl_ast_expr_id_get_id ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_int_get_val()

__isl_give isl_val * isl_ast_expr_int_get_val ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_is_equal()

isl_bool isl_ast_expr_is_equal ( __isl_keep isl_ast_expr expr1,
__isl_keep isl_ast_expr expr2 
)

◆ isl_ast_expr_le()

__isl_give isl_ast_expr * isl_ast_expr_le ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 780 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_le.

Referenced by isl::ast_expr::le().

◆ isl_ast_expr_list_is_equal()

static isl_bool isl_ast_expr_list_is_equal ( __isl_keep isl_ast_expr_list *  list1,
__isl_keep isl_ast_expr_list *  list2 
)
static

◆ isl_ast_expr_lt()

__isl_give isl_ast_expr * isl_ast_expr_lt ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 788 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_lt.

◆ isl_ast_expr_mul()

__isl_give isl_ast_expr * isl_ast_expr_mul ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 710 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_mul.

Referenced by isl_ast_expr_mod(), isl::ast_expr::mul(), and scale().

◆ isl_ast_expr_neg()

__isl_give isl_ast_expr * isl_ast_expr_neg ( __isl_take isl_ast_expr arg)

Definition at line 642 of file isl_ast.c.

References arg, isl_ast_expr_alloc_unary(), and isl_ast_expr_op_minus.

Referenced by ast_expr_sub(), scale(), and test_ast().

◆ isl_ast_expr_op_add_arg()

__isl_give isl_ast_expr * isl_ast_expr_op_add_arg ( __isl_take isl_ast_expr expr,
__isl_take isl_ast_expr arg 
)

◆ isl_ast_expr_op_get_arg()

__isl_give isl_ast_expr * isl_ast_expr_op_get_arg ( __isl_keep isl_ast_expr expr,
int  pos 
)

Definition at line 366 of file isl_ast.c.

References isl_ast_expr_check_op(), and pos().

Referenced by isl::ast_expr_op::arg(), and isl_ast_expr_get_op_arg().

◆ isl_ast_expr_op_get_args()

static __isl_give isl_ast_expr_list * isl_ast_expr_op_get_args ( __isl_keep isl_ast_expr expr)
static

Definition at line 385 of file isl_ast.c.

References isl_ast_expr_check_op().

Referenced by isl_ast_expr_op_take_args().

◆ isl_ast_expr_op_get_n_arg()

isl_size isl_ast_expr_op_get_n_arg ( __isl_keep isl_ast_expr expr)

Definition at line 350 of file isl_ast.c.

References isl_ast_expr_check_op(), and isl_size_error.

Referenced by isl_ast_expr_get_op_n_arg(), and isl::ast_expr_op::n_arg().

◆ isl_ast_expr_op_get_type()

enum isl_ast_expr_op_type isl_ast_expr_op_get_type ( __isl_keep isl_ast_expr expr)

◆ isl_ast_expr_op_restore_args()

static __isl_give isl_ast_expr * isl_ast_expr_op_restore_args ( __isl_take isl_ast_expr expr,
__isl_take isl_ast_expr_list *  args 
)
static

◆ isl_ast_expr_op_take_args()

static __isl_give isl_ast_expr_list * isl_ast_expr_op_take_args ( __isl_keep isl_ast_expr expr)
static

◆ isl_ast_expr_op_type_print_macro()

__isl_give isl_printer * isl_ast_expr_op_type_print_macro ( enum isl_ast_expr_op_type  type,
__isl_take isl_printer p 
)

◆ isl_ast_expr_op_type_set_print_name()

__isl_give isl_printer * isl_ast_expr_op_type_set_print_name ( __isl_take isl_printer p,
enum isl_ast_expr_op_type  type,
__isl_keep const char *  name 
)

◆ isl_ast_expr_or()

__isl_give isl_ast_expr * isl_ast_expr_or ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

◆ isl_ast_expr_or_else()

__isl_give isl_ast_expr * isl_ast_expr_or_else ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 772 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_or_else.

◆ isl_ast_expr_pdiv_q()

__isl_give isl_ast_expr * isl_ast_expr_pdiv_q ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 728 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_pdiv_q.

◆ isl_ast_expr_pdiv_r()

__isl_give isl_ast_expr * isl_ast_expr_pdiv_r ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 738 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_pdiv_r.

◆ isl_ast_expr_print_macros()

__isl_give isl_printer * isl_ast_expr_print_macros ( __isl_keep isl_ast_expr expr,
__isl_take isl_printer p 
)

◆ isl_ast_expr_set_op_arg()

__isl_give isl_ast_expr * isl_ast_expr_set_op_arg ( __isl_take isl_ast_expr expr,
int  pos,
__isl_take isl_ast_expr arg 
)

Definition at line 462 of file isl_ast.c.

References arg, isl_ast_expr_op_restore_args(), isl_ast_expr_op_take_args(), and pos().

◆ isl_ast_expr_sub()

__isl_give isl_ast_expr * isl_ast_expr_sub ( __isl_take isl_ast_expr expr1,
__isl_take isl_ast_expr expr2 
)

Definition at line 702 of file isl_ast.c.

References isl_ast_expr_alloc_binary(), and isl_ast_expr_op_sub.

Referenced by ast_expr_sub(), and test_ast().

◆ isl_ast_expr_substitute_ids()

__isl_give isl_ast_expr * isl_ast_expr_substitute_ids ( __isl_take isl_ast_expr expr,
__isl_take isl_id_to_ast_expr *  id2expr 
)

◆ isl_ast_expr_to_C_str()

__isl_give char * isl_ast_expr_to_C_str ( __isl_keep isl_ast_expr expr)

◆ isl_ast_node_alloc()

__isl_give isl_ast_node * isl_ast_node_alloc ( isl_ctx ctx,
enum isl_ast_node_type  type 
)

◆ isl_ast_node_alloc_block()

__isl_give isl_ast_node * isl_ast_node_alloc_block ( __isl_take isl_ast_node_list *  list)

◆ isl_ast_node_alloc_for()

__isl_give isl_ast_node * isl_ast_node_alloc_for ( __isl_take isl_id id)

◆ isl_ast_node_alloc_if()

__isl_give isl_ast_node * isl_ast_node_alloc_if ( __isl_take isl_ast_expr guard)

◆ isl_ast_node_alloc_mark()

__isl_give isl_ast_node * isl_ast_node_alloc_mark ( __isl_take isl_id id,
__isl_take isl_ast_node node 
)

◆ isl_ast_node_alloc_user()

__isl_give isl_ast_node * isl_ast_node_alloc_user ( __isl_take isl_ast_expr expr)

Definition at line 1030 of file isl_ast.c.

References isl_ast_node_user_from_expr().

Referenced by isl_ast_build_call_from_executed(), and read_user().

◆ isl_ast_node_block_from_children()

__isl_give isl_ast_node * isl_ast_node_block_from_children ( __isl_take isl_ast_node_list *  list)

◆ isl_ast_node_block_get_children()

__isl_give isl_ast_node_list * isl_ast_node_block_get_children ( __isl_keep isl_ast_node node)

◆ isl_ast_node_block_restore_children()

static __isl_give isl_ast_node * isl_ast_node_block_restore_children ( __isl_take isl_ast_node node,
__isl_take isl_ast_node_list *  children 
)
static

Definition at line 1623 of file isl_ast.c.

Referenced by traverse().

◆ isl_ast_node_block_take_children()

static static __isl_give isl_ast_node_list * isl_ast_node_block_take_children ( __isl_keep isl_ast_node node)
static

Definition at line 1604 of file isl_ast.c.

References isl_ast_node_block_get_children(), and isl_ast_node_check_block().

Referenced by traverse().

◆ isl_ast_node_check_any()

static isl_stat isl_ast_node_check_any ( __isl_keep isl_ast_node node)
static

Definition at line 1712 of file isl_ast.c.

References isl_stat_non_null().

◆ isl_ast_node_check_block()

static isl_stat isl_ast_node_check_block ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_check_for()

static isl_stat isl_ast_node_check_for ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_check_if()

static isl_stat isl_ast_node_check_if ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_check_mark()

static isl_stat isl_ast_node_check_mark ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_check_type()

static isl_stat isl_ast_node_check_type ( __isl_keep isl_ast_node node,
enum isl_ast_node_type  type,
const char *  msg 
)
static

◆ isl_ast_node_check_user()

static isl_stat isl_ast_node_check_user ( __isl_keep isl_ast_node node)
static

Definition at line 1268 of file isl_ast.c.

References isl_ast_node_check_type(), and isl_ast_node_user.

Referenced by isl_ast_node_user_get_expr().

◆ isl_ast_node_copy()

__isl_give isl_ast_node * isl_ast_node_copy ( __isl_keep isl_ast_node node)

◆ isl_ast_node_cow()

__isl_give isl_ast_node * isl_ast_node_cow ( __isl_take isl_ast_node node)

Definition at line 1169 of file isl_ast.c.

References isl_ast_node_dup(), and isl_ast_node::ref.

Referenced by FN(), and isl_ast_node_for_mark_degenerate().

◆ isl_ast_node_dup()

__isl_give isl_ast_node * isl_ast_node_dup ( __isl_keep isl_ast_node node)

◆ isl_ast_node_for_get_body()

__isl_give isl_ast_node * isl_ast_node_for_get_body ( __isl_keep isl_ast_node node)

◆ isl_ast_node_for_get_cond()

__isl_give isl_ast_expr * isl_ast_node_for_get_cond ( __isl_keep isl_ast_node node)

◆ isl_ast_node_for_get_inc()

__isl_give isl_ast_expr * isl_ast_node_for_get_inc ( __isl_keep isl_ast_node node)

◆ isl_ast_node_for_get_init()

__isl_give isl_ast_expr * isl_ast_node_for_get_init ( __isl_keep isl_ast_node node)

◆ isl_ast_node_for_get_iterator()

__isl_give isl_ast_expr * isl_ast_node_for_get_iterator ( __isl_keep isl_ast_node node)

◆ isl_ast_node_for_is_degenerate()

isl_bool isl_ast_node_for_is_degenerate ( __isl_keep isl_ast_node node)

Definition at line 1368 of file isl_ast.c.

References isl_ast_node_check_for(), isl_bool_error, and isl_bool_ok().

Referenced by isl::ast_node_for::is_degenerate().

◆ isl_ast_node_for_mark_degenerate()

__isl_give isl_ast_node * isl_ast_node_for_mark_degenerate ( __isl_take isl_ast_node node)

Definition at line 1358 of file isl_ast.c.

References isl_ast_node_cow().

Referenced by create_for(), and read_for().

◆ isl_ast_node_for_print()

__isl_give isl_printer * isl_ast_node_for_print ( __isl_keep isl_ast_node node,
__isl_take isl_printer p,
__isl_take isl_ast_print_options options 
)

◆ isl_ast_node_for_restore_body()

static __isl_give isl_ast_node * isl_ast_node_for_restore_body ( __isl_take isl_ast_node node,
__isl_take isl_ast_node body 
)
static

Definition at line 1342 of file isl_ast.c.

References isl_ast_node_for_set_body().

Referenced by traverse().

◆ isl_ast_node_for_take_body()

static __isl_give isl_ast_node * isl_ast_node_for_take_body ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_foreach_ast_expr_op_type()

isl_stat isl_ast_node_foreach_ast_expr_op_type ( __isl_keep isl_ast_node node,
isl_stat(*)(enum isl_ast_expr_op_type type, void *user fn,
void *  user 
)

◆ isl_ast_node_foreach_ast_op_type()

isl_stat isl_ast_node_foreach_ast_op_type ( __isl_keep isl_ast_node node,
isl_stat(*)(enum isl_ast_expr_op_type type, void *user fn,
void *  user 
)

Definition at line 3860 of file isl_ast.c.

References fn, isl_ast_node_foreach_ast_expr_op_type(), and user.

◆ isl_ast_node_foreach_descendant_top_down()

isl_stat isl_ast_node_foreach_descendant_top_down ( __isl_keep isl_ast_node node,
isl_bool(*)(__isl_keep isl_ast_node *node, void *user fn,
void *  user 
)

◆ isl_ast_node_free()

__isl_null isl_ast_node * isl_ast_node_free ( __isl_take isl_ast_node node)

◆ isl_ast_node_from_ast_node_list()

__isl_give isl_ast_node * isl_ast_node_from_ast_node_list ( __isl_take isl_ast_node_list *  list)

Definition at line 1071 of file isl_ast.c.

References isl_ast_node_alloc_block(), and n.

Referenced by isl_ast_graft_alloc_from_children(), and isl_ast_node_from_graft_list().

◆ isl_ast_node_get_annotation()

__isl_give isl_id * isl_ast_node_get_annotation ( __isl_keep isl_ast_node node)

Definition at line 1704 of file isl_ast.c.

References isl_id_copy().

Referenced by after_for(), isl::ast_node::annotation(), astBuildAfterFor(), and AtEachDomain().

◆ isl_ast_node_get_ctx()

isl_ctx * isl_ast_node_get_ctx ( __isl_keep isl_ast_node node)

◆ isl_ast_node_get_type()

enum isl_ast_node_type isl_ast_node_get_type ( __isl_keep isl_ast_node node)

◆ isl_ast_node_if_get_cond()

__isl_give isl_ast_expr * isl_ast_node_if_get_cond ( __isl_keep isl_ast_node node)

◆ isl_ast_node_if_get_else()

__isl_give isl_ast_node * isl_ast_node_if_get_else ( __isl_keep isl_ast_node node)

Definition at line 1517 of file isl_ast.c.

References isl_ast_node_if_get_else_node().

Referenced by polly::IslNodeBuilder::createIf().

◆ isl_ast_node_if_get_else_node()

__isl_give isl_ast_node * isl_ast_node_if_get_else_node ( __isl_keep isl_ast_node node)

◆ isl_ast_node_if_get_then()

__isl_give isl_ast_node * isl_ast_node_if_get_then ( __isl_keep isl_ast_node node)

Definition at line 1482 of file isl_ast.c.

References isl_ast_node_if_get_then_node().

Referenced by polly::IslNodeBuilder::createIf().

◆ isl_ast_node_if_get_then_node()

__isl_give isl_ast_node * isl_ast_node_if_get_then_node ( __isl_keep isl_ast_node node)

◆ isl_ast_node_if_has_else()

isl_bool isl_ast_node_if_has_else ( __isl_keep isl_ast_node node)

Definition at line 1499 of file isl_ast.c.

References isl_ast_node_if_has_else_node().

Referenced by polly::IslNodeBuilder::createIf().

◆ isl_ast_node_if_has_else_node()

isl_bool isl_ast_node_if_has_else_node ( __isl_keep isl_ast_node node)

◆ isl_ast_node_if_print()

__isl_give isl_printer * isl_ast_node_if_print ( __isl_keep isl_ast_node node,
__isl_take isl_printer p,
__isl_take isl_ast_print_options options 
)

◆ isl_ast_node_if_restore_else_node()

static __isl_give isl_ast_node * isl_ast_node_if_restore_else_node ( __isl_take isl_ast_node node,
__isl_take isl_ast_node child 
)
static

Definition at line 1562 of file isl_ast.c.

Referenced by traverse().

◆ isl_ast_node_if_restore_then_node()

static __isl_give isl_ast_node * isl_ast_node_if_restore_then_node ( __isl_take isl_ast_node node,
__isl_take isl_ast_node child 
)
static

Definition at line 1464 of file isl_ast.c.

References isl_ast_node_if_set_then().

Referenced by traverse().

◆ isl_ast_node_if_take_else_node()

static static __isl_give isl_ast_node * isl_ast_node_if_take_else_node ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_if_take_then_node()

static __isl_give isl_ast_node * isl_ast_node_if_take_then_node ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_list_print()

__isl_give isl_printer * isl_ast_node_list_print ( __isl_keep isl_ast_node_list *  list,
__isl_take isl_printer p,
__isl_keep isl_ast_print_options options 
)

Definition at line 3268 of file isl_ast.c.

References isl_printer_free(), p, and print_ast_node_c().

Referenced by print_ast_node_c().

◆ isl_ast_node_map_descendant_bottom_up()

__isl_give isl_ast_node * isl_ast_node_map_descendant_bottom_up ( __isl_take isl_ast_node node,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, void *user fn,
void *  user 
)

Definition at line 1944 of file isl_ast.c.

References fn, postorder_enter(), postorder_leave(), traverse(), and user.

Referenced by test_ast_gen1().

◆ isl_ast_node_mark_get_id()

__isl_give isl_id * isl_ast_node_mark_get_id ( __isl_keep isl_ast_node node)

◆ isl_ast_node_mark_get_node()

__isl_give isl_ast_node * isl_ast_node_mark_get_node ( __isl_keep isl_ast_node node)

◆ isl_ast_node_mark_restore_node()

static __isl_give isl_ast_node * isl_ast_node_mark_restore_node ( __isl_take isl_ast_node node,
__isl_take isl_ast_node child 
)
static

Definition at line 1698 of file isl_ast.c.

Referenced by traverse().

◆ isl_ast_node_mark_take_node()

static static __isl_give isl_ast_node * isl_ast_node_mark_take_node ( __isl_keep isl_ast_node node)
static

◆ isl_ast_node_print()

__isl_give isl_printer * isl_ast_node_print ( __isl_keep isl_ast_node node,
__isl_take isl_printer p,
__isl_take isl_ast_print_options options 
)

◆ isl_ast_node_print_macros()

__isl_give isl_printer * isl_ast_node_print_macros ( __isl_keep isl_ast_node node,
__isl_take isl_printer p 
)

◆ isl_ast_node_set_annotation()

static __isl_give isl_ast_node * isl_ast_node_set_annotation ( __isl_take isl_ast_node node,
__isl_take isl_id annotation 
)
static

Definition at line 1730 of file isl_ast.c.

◆ isl_ast_node_to_C_str()

__isl_give char * isl_ast_node_to_C_str ( __isl_keep isl_ast_node node)

◆ isl_ast_node_user_from_expr()

__isl_give isl_ast_node * isl_ast_node_user_from_expr ( __isl_take isl_ast_expr expr)

◆ isl_ast_node_user_get_expr()

__isl_give isl_ast_expr * isl_ast_node_user_get_expr ( __isl_keep isl_ast_node node)

◆ isl_ast_op_type_print_macro()

__isl_give isl_printer * isl_ast_op_type_print_macro ( enum isl_ast_expr_op_type  type,
__isl_take isl_printer p 
)

Definition at line 3797 of file isl_ast.c.

References isl_ast_expr_op_type_print_macro(), p, and type.

◆ isl_ast_op_type_set_print_name()

__isl_give isl_printer * isl_ast_op_type_set_print_name ( __isl_take isl_printer p,
enum isl_ast_expr_op_type  type,
__isl_keep const char *  name 
)

Definition at line 2267 of file isl_ast.c.

References isl_ast_expr_op_type_set_print_name(), name, p, and type.

◆ isl_ast_print_options_alloc()

__isl_give isl_ast_print_options * isl_ast_print_options_alloc ( isl_ctx ctx)

◆ isl_ast_print_options_copy()

__isl_give isl_ast_print_options * isl_ast_print_options_copy ( __isl_keep isl_ast_print_options options)

Definition at line 84 of file isl_ast.c.

Referenced by print_ast_node_c(), and print_body_c().

◆ isl_ast_print_options_cow()

__isl_give isl_ast_print_options * isl_ast_print_options_cow ( __isl_take isl_ast_print_options options)

◆ isl_ast_print_options_dup()

__isl_give isl_ast_print_options * isl_ast_print_options_dup ( __isl_keep isl_ast_print_options options)

◆ isl_ast_print_options_free()

__isl_null isl_ast_print_options * isl_ast_print_options_free ( __isl_take isl_ast_print_options options)

◆ isl_ast_print_options_get_ctx()

isl_ctx * isl_ast_print_options_get_ctx ( __isl_keep isl_ast_print_options options)

Definition at line 29 of file isl_ast.c.

Referenced by isl_ast_print_options_dup().

◆ isl_ast_print_options_set_print_for()

__isl_give isl_ast_print_options * isl_ast_print_options_set_print_for ( __isl_take isl_ast_print_options options,
__isl_give isl_printer *(*)(__isl_take isl_printer *p, __isl_take isl_ast_print_options *options, __isl_keep isl_ast_node *node, void *user print_for,
void *  user 
)

Definition at line 135 of file isl_ast.c.

References isl_ast_print_options_cow(), and user.

Referenced by polly::IslAstInfo::print().

◆ isl_ast_print_options_set_print_user()

__isl_give isl_ast_print_options * isl_ast_print_options_set_print_user ( __isl_take isl_ast_print_options options,
__isl_give isl_printer *(*)(__isl_take isl_printer *p, __isl_take isl_ast_print_options *options, __isl_keep isl_ast_node *node, void *user print_user,
void *  user 
)

Definition at line 114 of file isl_ast.c.

References isl_ast_print_options_cow(), and user.

Referenced by polly::IslAstInfo::print().

◆ isl_printer_print_ast_expr()

__isl_give isl_printer * isl_printer_print_ast_expr ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)

◆ isl_printer_print_ast_node()

__isl_give isl_printer * isl_printer_print_ast_node ( __isl_take isl_printer p,
__isl_keep isl_ast_node node 
)

◆ isl_stream_read_ast_expr()

__isl_give isl_ast_expr * isl_stream_read_ast_expr ( __isl_keep isl_stream s)

◆ isl_stream_read_ast_node()

__isl_give isl_ast_node * isl_stream_read_ast_node ( __isl_keep isl_stream s)

◆ names_id()

static __isl_give isl_id * names_id ( isl_ctx ctx)
static

Definition at line 2174 of file isl_ast.c.

References isl_id_alloc().

Referenced by get_op_str_c(), and isl_ast_expr_op_type_set_print_name().

◆ need_block()

static int need_block ( __isl_keep isl_ast_node node)
static

◆ next_is_sequence()

static isl_bool next_is_sequence ( __isl_keep isl_stream s)
static

◆ next_key()

static __isl_give char * next_key ( __isl_keep isl_stream s)
static

◆ postorder_enter()

static __isl_give isl_ast_node * postorder_enter ( __isl_take isl_ast_node node,
int *  more,
void *  user 
)
static

Definition at line 1915 of file isl_ast.c.

Referenced by isl_ast_node_map_descendant_bottom_up().

◆ postorder_leave()

static __isl_give isl_ast_node * postorder_leave ( __isl_take isl_ast_node node,
void *  user 
)
static

◆ preorder_enter()

static __isl_give isl_ast_node * preorder_enter ( __isl_take isl_ast_node node,
int *  more,
void *  user 
)
static

◆ preorder_leave()

static __isl_give isl_ast_node * preorder_leave ( __isl_take isl_ast_node node,
void *  user 
)
static

Definition at line 1872 of file isl_ast.c.

Referenced by isl_ast_node_foreach_descendant_top_down().

◆ print_access_c()

static __isl_give isl_printer * print_access_c ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)
static

Definition at line 2367 of file isl_ast.c.

References isl_printer_free(), isl_printer_print_str(), n, p, and print_at_c().

Referenced by print_ast_expr_c().

◆ print_arguments()

static __isl_give isl_printer * print_arguments ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)
static

◆ print_ast_expr_c()

static __isl_give isl_printer * print_ast_expr_c ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)
static

◆ print_ast_expr_isl()

static __isl_give isl_printer * print_ast_expr_isl ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)
static

◆ print_ast_node_c()

static __isl_give isl_printer * print_ast_node_c ( __isl_take isl_printer p,
__isl_keep isl_ast_node node,
__isl_keep isl_ast_print_options options,
int  in_block,
int  in_list 
)
static

◆ print_ast_node_isl()

static __isl_give isl_printer * print_ast_node_isl ( __isl_take isl_printer p,
__isl_keep isl_ast_node node 
)
static

◆ print_ast_node_list()

static __isl_give isl_printer * print_ast_node_list ( __isl_take isl_printer p,
__isl_keep isl_ast_node_list *  list 
)
static

◆ print_at_c()

static __isl_give isl_printer * print_at_c ( __isl_take isl_printer p,
__isl_keep isl_ast_expr_list *  list,
int  pos 
)
static

◆ print_body_c()

static __isl_give isl_printer * print_body_c ( __isl_take isl_printer p,
__isl_keep isl_ast_node node,
__isl_keep isl_ast_node else_node,
__isl_keep isl_ast_print_options options,
int  force_block 
)
static

◆ print_call_c()

static __isl_give isl_printer * print_call_c ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)
static

Definition at line 2341 of file isl_ast.c.

References isl_printer_free(), isl_printer_print_str(), n, p, and print_at_c().

Referenced by print_ast_expr_c().

◆ print_for_c()

static __isl_give isl_printer * print_for_c ( __isl_take isl_printer p,
__isl_keep isl_ast_node node,
__isl_keep isl_ast_print_options options,
int  in_block,
int  in_list 
)
static

◆ print_if_c()

static __isl_give isl_printer * print_if_c ( __isl_take isl_printer p,
__isl_keep isl_ast_node node,
__isl_keep isl_ast_print_options options,
int  new_line,
int  force_block 
)
static

◆ print_min_max_c()

static __isl_give isl_printer * print_min_max_c ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr 
)
static

Definition at line 2313 of file isl_ast.c.

References get_op_str_c(), isl_printer_free(), isl_printer_print_str(), n, p, and print_at_c().

Referenced by print_ast_expr_c().

◆ print_sub_expr_c()

static __isl_give isl_printer * print_sub_expr_c ( __isl_take isl_printer p,
__isl_keep isl_ast_expr expr,
int  pos,
int  left 
)
static

◆ printed_id()

static __isl_give isl_id * printed_id ( isl_ctx ctx)
static

Definition at line 3700 of file isl_ast.c.

References isl_id_alloc().

Referenced by already_printed_once().

◆ read_block()

static __isl_give isl_ast_node * read_block ( __isl_keep isl_stream s)
static

Definition at line 3311 of file isl_ast.c.

References isl_ast_node_block_from_children(), and isl_token::s.

Referenced by isl_stream_read_ast_node().

◆ read_body()

static __isl_give isl_ast_node * read_body ( __isl_keep isl_stream s,
__isl_take isl_ast_node node 
)
static

◆ read_for()

static __isl_give isl_ast_node * read_for ( __isl_keep isl_stream s)
static

◆ read_id()

static __isl_give isl_ast_expr * read_id ( __isl_keep isl_stream s)
static

Definition at line 2718 of file isl_ast.c.

References isl_ast_expr_from_id(), isl_stream_read_id(), and isl_token::s.

Referenced by isl_stream_read_ast_expr().

◆ read_if()

static __isl_give isl_ast_node * read_if ( __isl_keep isl_stream s)
static

◆ read_int()

static __isl_give isl_ast_expr * read_int ( __isl_keep isl_stream s)
static

Definition at line 2726 of file isl_ast.c.

References isl_ast_expr_from_val(), isl_stream_read_val(), and isl_token::s.

Referenced by isl_stream_read_ast_expr().

◆ read_mark()

static __isl_give isl_ast_node * read_mark ( __isl_keep isl_stream s)
static

◆ read_op()

static __isl_give isl_ast_expr * read_op ( __isl_keep isl_stream s)
static

Definition at line 2697 of file isl_ast.c.

References alloc_op(), eat_key(), isl_stream_yaml_next(), op, and isl_token::s.

Referenced by isl_stream_read_ast_expr().

◆ read_user()

static __isl_give isl_ast_node * read_user ( __isl_keep isl_stream s)
static

◆ start_block()

static __isl_give isl_printer * start_block ( __isl_take isl_printer p)
static

◆ sub_expr_need_parens()

static int sub_expr_need_parens ( enum isl_ast_expr_op_type  op,
__isl_keep isl_ast_expr expr,
int  left 
)
static

Definition at line 2088 of file isl_ast.c.

References is_add_sub(), is_and(), is_div_mod(), is_or(), isl_ast_expr_op, isl_ast_expr_op_mul, op, op_left, and op_prec.

Referenced by print_sub_expr_c().

◆ substitute_ids()

static __isl_give isl_ast_expr * substitute_ids ( __isl_take isl_ast_expr expr,
void *  user 
)
static

Definition at line 850 of file isl_ast.c.

References isl_ast_expr_substitute_ids(), and user.

Referenced by isl_ast_expr_substitute_ids().

◆ traverse()

static __isl_give isl_ast_node * traverse ( __isl_take isl_ast_node node,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, int *more, void *user enter,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, void *user leave,
void *  user 
)
static

◆ traverse_list()

static __isl_give isl_ast_node_list * traverse_list ( __isl_take isl_ast_node_list *  list,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, int *more, void *user enter,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, void *user leave,
void *  user 
)
static

Definition at line 1749 of file isl_ast.c.

References n, traverse(), and user.

Referenced by traverse().

Variable Documentation

◆ expr_str

char* expr_str[]
static
Initial value:
= {
[isl_ast_expr_op] = "op",
[isl_ast_expr_id] = "id",
[isl_ast_expr_int] = "val",
}
@ isl_ast_expr_id
Definition: ast_type.h:78
@ isl_ast_expr_int
Definition: ast_type.h:79
@ isl_ast_expr_op
Definition: ast_type.h:77

Definition at line 2540 of file isl_ast.c.

Referenced by print_ast_expr_isl().

◆ node_first_str

char* node_first_str[]
static
Initial value:
= {
[isl_ast_node_for] = "iterator",
[isl_ast_node_mark] = "mark",
[isl_ast_node_user] = "user",
[isl_ast_node_if] = "guard",
}
@ isl_ast_node_block
Definition: ast_type.h:86
@ isl_ast_node_for
Definition: ast_type.h:84
@ isl_ast_node_mark
Definition: ast_type.h:87
@ isl_ast_node_if
Definition: ast_type.h:85
@ isl_ast_node_user
Definition: ast_type.h:88

Definition at line 3325 of file isl_ast.c.

◆ op_left

int op_left[]
static
Initial value:
= {
}
@ isl_ast_expr_op_member
Definition: ast_type.h:42
@ isl_ast_expr_op_gt
Definition: ast_type.h:39
@ isl_ast_expr_op_minus
Definition: ast_type.h:24
@ isl_ast_expr_op_pdiv_r
Definition: ast_type.h:31
@ isl_ast_expr_op_sub
Definition: ast_type.h:26
@ isl_ast_expr_op_min
Definition: ast_type.h:23
@ isl_ast_expr_op_cond
Definition: ast_type.h:33
@ isl_ast_expr_op_and_then
Definition: ast_type.h:19
@ isl_ast_expr_op_fdiv_q
Definition: ast_type.h:29
@ isl_ast_expr_op_call
Definition: ast_type.h:40
@ isl_ast_expr_op_le
Definition: ast_type.h:36
@ isl_ast_expr_op_ge
Definition: ast_type.h:38
@ isl_ast_expr_op_address_of
Definition: ast_type.h:43
@ isl_ast_expr_op_lt
Definition: ast_type.h:37
@ isl_ast_expr_op_or
Definition: ast_type.h:20
@ isl_ast_expr_op_div
Definition: ast_type.h:28
@ isl_ast_expr_op_select
Definition: ast_type.h:34
@ isl_ast_expr_op_and
Definition: ast_type.h:18
@ isl_ast_expr_op_mul
Definition: ast_type.h:27
@ isl_ast_expr_op_add
Definition: ast_type.h:25
@ isl_ast_expr_op_max
Definition: ast_type.h:22
@ isl_ast_expr_op_access
Definition: ast_type.h:41
@ isl_ast_expr_op_zdiv_r
Definition: ast_type.h:32
@ isl_ast_expr_op_eq
Definition: ast_type.h:35
@ isl_ast_expr_op_pdiv_q
Definition: ast_type.h:30
@ isl_ast_expr_op_or_else
Definition: ast_type.h:21

Definition at line 2016 of file isl_ast.c.

Referenced by sub_expr_need_parens().

◆ op_prec

int op_prec[]
static

◆ op_str

char* op_str[]
static
Initial value:

Definition at line 2472 of file isl_ast.c.

Referenced by print_ast_expr_isl().

◆ op_str_c

char* op_str_c[]
static