Polly 19.0.0git
Classes | Macros | Typedefs | Enumerations | Functions
ctx.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <isl/arg.h>

Go to the source code of this file.

Classes

struct  isl_stats
 

Macros

#define __isl_give
 
#define __isl_take
 
#define __isl_keep
 
#define __isl_null
 
#define __isl_export
 
#define __isl_overload
 
#define __isl_constructor
 
#define __isl_subclass(super)
 
#define isl_size_error   ((int) -1)
 
#define ISL_DEPRECATED
 
#define ISL_FL_INIT(l, f)   (l) = (f) /* Specific flags location. */
 
#define ISL_FL_SET(l, f)   ((l) |= (f))
 
#define ISL_FL_CLR(l, f)   ((l) &= ~(f))
 
#define ISL_FL_ISSET(l, f)   (!!((l) & (f)))
 
#define ISL_F_INIT(p, f)   ISL_FL_INIT((p)->flags, f) /* Structure element flags. */
 
#define ISL_F_SET(p, f)   ISL_FL_SET((p)->flags, f)
 
#define ISL_F_CLR(p, f)   ISL_FL_CLR((p)->flags, f)
 
#define ISL_F_ISSET(p, f)   ISL_FL_ISSET((p)->flags, f)
 
#define isl_alloc(ctx, type, size)   ((type *)isl_malloc_or_die(ctx, size))
 
#define isl_calloc(ctx, type, size)
 
#define isl_realloc(ctx, ptr, type, size)
 
#define isl_alloc_type(ctx, type)   isl_alloc(ctx,type,sizeof(type))
 
#define isl_calloc_type(ctx, type)   isl_calloc(ctx,type,sizeof(type))
 
#define isl_realloc_type(ctx, ptr, type)   isl_realloc(ctx,ptr,type,sizeof(type))
 
#define isl_alloc_array(ctx, type, n)   isl_alloc(ctx,type,(n)*sizeof(type))
 
#define isl_calloc_array(ctx, type, n)
 
#define isl_realloc_array(ctx, ptr, type, n)    isl_realloc(ctx,ptr,type,(n)*sizeof(type))
 
#define isl_die(ctx, errno, msg, code)
 
#define isl_assert4(ctx, test, code, errno)
 
#define isl_assert(ctx, test, code)    isl_assert4(ctx,test,code,isl_error_unknown)
 
#define isl_min(a, b)   ((a < b) ? (a) : (b))
 
#define ISL_ARG_CTX_DECL(prefix, st, args)   st *isl_ctx_peek_ ## prefix(isl_ctx *ctx);
 
#define ISL_ARG_CTX_DEF(prefix, st, args)
 
#define ISL_CTX_GET_INT_DEF(prefix, st, args, field)
 
#define ISL_CTX_SET_INT_DEF(prefix, st, args, field)
 
#define ISL_CTX_GET_STR_DEF(prefix, st, args, field)
 
#define ISL_CTX_SET_STR_DEF(prefix, st, args, field)
 
#define ISL_CTX_GET_BOOL_DEF(prefix, st, args, field)    ISL_CTX_GET_INT_DEF(prefix,st,args,field)
 
#define ISL_CTX_SET_BOOL_DEF(prefix, st, args, field)    ISL_CTX_SET_INT_DEF(prefix,st,args,field)
 
#define ISL_CTX_GET_CHOICE_DEF(prefix, st, args, field)    ISL_CTX_GET_INT_DEF(prefix,st,args,field)
 
#define ISL_CTX_SET_CHOICE_DEF(prefix, st, args, field)    ISL_CTX_SET_INT_DEF(prefix,st,args,field)
 

Typedefs

typedef int isl_size
 
typedef struct isl_ctx isl_ctx
 

Enumerations

enum  isl_error {
  isl_error_none = 0 , isl_error_abort , isl_error_alloc , isl_error_unknown ,
  isl_error_internal , isl_error_invalid , isl_error_quota , isl_error_unsupported
}
 
enum  isl_stat { isl_stat_error = -1 , isl_stat_ok = 0 }
 
enum  isl_bool { isl_bool_error = -1 , isl_bool_false = 0 , isl_bool_true = 1 }
 

Functions

isl_stat isl_stat_non_null (void *obj)
 
isl_bool isl_bool_not (isl_bool b)
 
isl_bool isl_bool_ok (int b)
 
void * isl_malloc_or_die (isl_ctx *ctx, size_t size)
 
void * isl_calloc_or_die (isl_ctx *ctx, size_t nmemb, size_t size)
 
void * isl_realloc_or_die (isl_ctx *ctx, void *ptr, size_t size)
 
void isl_handle_error (isl_ctx *ctx, enum isl_error error, const char *msg, const char *file, int line)
 
struct isl_optionsisl_ctx_options (isl_ctx *ctx)
 
isl_ctxisl_ctx_alloc_with_options (struct isl_args *args, __isl_take void *opt)
 
isl_ctxisl_ctx_alloc (void)
 
void * isl_ctx_peek_options (isl_ctx *ctx, struct isl_args *args)
 
int isl_ctx_parse_options (isl_ctx *ctx, int argc, char **argv, unsigned flags)
 
void isl_ctx_ref (struct isl_ctx *ctx)
 
void isl_ctx_deref (struct isl_ctx *ctx)
 
void isl_ctx_free (isl_ctx *ctx)
 
void isl_ctx_abort (isl_ctx *ctx)
 
void isl_ctx_resume (isl_ctx *ctx)
 
int isl_ctx_aborted (isl_ctx *ctx)
 
void isl_ctx_set_max_operations (isl_ctx *ctx, unsigned long max_operations)
 
unsigned long isl_ctx_get_max_operations (isl_ctx *ctx)
 
void isl_ctx_reset_operations (isl_ctx *ctx)
 
enum isl_error isl_ctx_last_error (isl_ctx *ctx)
 
const char * isl_ctx_last_error_msg (isl_ctx *ctx)
 
const char * isl_ctx_last_error_file (isl_ctx *ctx)
 
int isl_ctx_last_error_line (isl_ctx *ctx)
 
void isl_ctx_reset_error (isl_ctx *ctx)
 
void isl_ctx_set_error (isl_ctx *ctx, enum isl_error error)
 

Macro Definition Documentation

◆ __isl_constructor

#define __isl_constructor

Definition at line 37 of file ctx.h.

◆ __isl_export

#define __isl_export

Definition at line 31 of file ctx.h.

◆ __isl_give

#define __isl_give

Definition at line 19 of file ctx.h.

◆ __isl_keep

#define __isl_keep

Definition at line 25 of file ctx.h.

◆ __isl_null

#define __isl_null

Definition at line 28 of file ctx.h.

◆ __isl_overload

#define __isl_overload

Definition at line 34 of file ctx.h.

◆ __isl_subclass

#define __isl_subclass (   super)

Definition at line 40 of file ctx.h.

◆ __isl_take

#define __isl_take

Definition at line 22 of file ctx.h.

◆ isl_alloc

#define isl_alloc (   ctx,
  type,
  size 
)    ((type *)isl_malloc_or_die(ctx, size))

Definition at line 123 of file ctx.h.

◆ isl_alloc_array

#define isl_alloc_array (   ctx,
  type,
  n 
)    isl_alloc(ctx,type,(n)*sizeof(type))

Definition at line 131 of file ctx.h.

◆ isl_alloc_type

#define isl_alloc_type (   ctx,
  type 
)    isl_alloc(ctx,type,sizeof(type))

Definition at line 128 of file ctx.h.

◆ ISL_ARG_CTX_DECL

#define ISL_ARG_CTX_DECL (   prefix,
  st,
  args 
)    st *isl_ctx_peek_ ## prefix(isl_ctx *ctx);

Definition at line 178 of file ctx.h.

◆ ISL_ARG_CTX_DEF

#define ISL_ARG_CTX_DEF (   prefix,
  st,
  args 
)
Value:
st *isl_ctx_peek_ ## prefix(isl_ctx *ctx) \
{ \
return (st *)isl_ctx_peek_options(ctx, &(args)); \
}
void * isl_ctx_peek_options(isl_ctx *ctx, struct isl_args *args)
Definition: isl_ctx.c:187

Definition at line 181 of file ctx.h.

◆ isl_assert

#define isl_assert (   ctx,
  test,
  code 
)     isl_assert4(ctx,test,code,isl_error_unknown)

Definition at line 152 of file ctx.h.

◆ isl_assert4

#define isl_assert4 (   ctx,
  test,
  code,
  errno 
)
Value:
do { \
if (test) \
break; \
isl_die(ctx, errno, "Assertion \"" #test "\" failed", code); \
} while (0)
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
Definition: hmap.h:41

Definition at line 146 of file ctx.h.

◆ isl_calloc

#define isl_calloc (   ctx,
  type,
  size 
)
Value:
1, size))
void * isl_calloc_or_die(isl_ctx *ctx, size_t nmemb, size_t size)
Definition: isl_ctx.c:99
enum isl_fold type
Definition: isl_test.c:4017
const char * size
Definition: isl_test.c:1570

Definition at line 124 of file ctx.h.

◆ isl_calloc_array

#define isl_calloc_array (   ctx,
  type,
  n 
)
Value:
n, sizeof(type)))
n
Definition: youcefn.c:8

Definition at line 132 of file ctx.h.

◆ isl_calloc_type

#define isl_calloc_type (   ctx,
  type 
)    isl_calloc(ctx,type,sizeof(type))

Definition at line 129 of file ctx.h.

◆ ISL_CTX_GET_BOOL_DEF

#define ISL_CTX_GET_BOOL_DEF (   prefix,
  st,
  args,
  field 
)     ISL_CTX_GET_INT_DEF(prefix,st,args,field)

Definition at line 242 of file ctx.h.

◆ ISL_CTX_GET_CHOICE_DEF

#define ISL_CTX_GET_CHOICE_DEF (   prefix,
  st,
  args,
  field 
)     ISL_CTX_GET_INT_DEF(prefix,st,args,field)

Definition at line 248 of file ctx.h.

◆ ISL_CTX_GET_INT_DEF

#define ISL_CTX_GET_INT_DEF (   prefix,
  st,
  args,
  field 
)
Value:
int prefix ## _get_ ## field(isl_ctx *ctx) \
{ \
st *options; \
options = isl_ctx_peek_ ## prefix(ctx); \
if (!options) \
isl_die(ctx, isl_error_invalid, \
"isl_ctx does not reference " #prefix, \
return -1); \
return options->field; \
}
@ isl_error_invalid
Definition: ctx.h:80

Definition at line 187 of file ctx.h.

◆ ISL_CTX_GET_STR_DEF

#define ISL_CTX_GET_STR_DEF (   prefix,
  st,
  args,
  field 
)
Value:
const char *prefix ## _get_ ## field(isl_ctx *ctx) \
{ \
st *options; \
options = isl_ctx_peek_ ## prefix(ctx); \
if (!options) \
isl_die(ctx, isl_error_invalid, \
"isl_ctx does not reference " #prefix, \
return NULL); \
return options->field; \
}

Definition at line 212 of file ctx.h.

◆ ISL_CTX_SET_BOOL_DEF

#define ISL_CTX_SET_BOOL_DEF (   prefix,
  st,
  args,
  field 
)     ISL_CTX_SET_INT_DEF(prefix,st,args,field)

Definition at line 245 of file ctx.h.

◆ ISL_CTX_SET_CHOICE_DEF

#define ISL_CTX_SET_CHOICE_DEF (   prefix,
  st,
  args,
  field 
)     ISL_CTX_SET_INT_DEF(prefix,st,args,field)

Definition at line 251 of file ctx.h.

◆ ISL_CTX_SET_INT_DEF

#define ISL_CTX_SET_INT_DEF (   prefix,
  st,
  args,
  field 
)
Value:
isl_stat prefix ## _set_ ## field(isl_ctx *ctx, int val) \
{ \
st *options; \
options = isl_ctx_peek_ ## prefix(ctx); \
if (!options) \
isl_die(ctx, isl_error_invalid, \
"isl_ctx does not reference " #prefix, \
return isl_stat_error); \
options->field = val; \
return isl_stat_ok; \
}
isl_stat
Definition: ctx.h:84
@ isl_stat_error
Definition: ctx.h:85
@ isl_stat_ok
Definition: ctx.h:86
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
Definition: hmap.h:32

Definition at line 199 of file ctx.h.

◆ ISL_CTX_SET_STR_DEF

#define ISL_CTX_SET_STR_DEF (   prefix,
  st,
  args,
  field 
)
Value:
isl_stat prefix ## _set_ ## field(isl_ctx *ctx, const char *val) \
{ \
st *options; \
options = isl_ctx_peek_ ## prefix(ctx); \
if (!options) \
isl_die(ctx, isl_error_invalid, \
"isl_ctx does not reference " #prefix, \
return isl_stat_error); \
if (!val) \
return isl_stat_error; \
free(options->field); \
options->field = strdup(val); \
if (!options->field) \
return isl_stat_error; \
return isl_stat_ok; \
}

Definition at line 224 of file ctx.h.

◆ ISL_DEPRECATED

#define ISL_DEPRECATED

Definition at line 106 of file ctx.h.

◆ isl_die

#define isl_die (   ctx,
  errno,
  msg,
  code 
)
Value:
do { \
isl_handle_error(ctx, errno, msg, __FILE__, __LINE__); \
code; \
} while (0)

Definition at line 137 of file ctx.h.

◆ ISL_F_CLR

#define ISL_F_CLR (   p,
  f 
)    ISL_FL_CLR((p)->flags, f)

Definition at line 116 of file ctx.h.

◆ ISL_F_INIT

#define ISL_F_INIT (   p,
  f 
)    ISL_FL_INIT((p)->flags, f) /* Structure element flags. */

Definition at line 114 of file ctx.h.

◆ ISL_F_ISSET

#define ISL_F_ISSET (   p,
  f 
)    ISL_FL_ISSET((p)->flags, f)

Definition at line 117 of file ctx.h.

◆ ISL_F_SET

#define ISL_F_SET (   p,
  f 
)    ISL_FL_SET((p)->flags, f)

Definition at line 115 of file ctx.h.

◆ ISL_FL_CLR

#define ISL_FL_CLR (   l,
  f 
)    ((l) &= ~(f))

Definition at line 111 of file ctx.h.

◆ ISL_FL_INIT

#define ISL_FL_INIT (   l,
  f 
)    (l) = (f) /* Specific flags location. */

Definition at line 109 of file ctx.h.

◆ ISL_FL_ISSET

#define ISL_FL_ISSET (   l,
  f 
)    (!!((l) & (f)))

Definition at line 112 of file ctx.h.

◆ ISL_FL_SET

#define ISL_FL_SET (   l,
  f 
)    ((l) |= (f))

Definition at line 110 of file ctx.h.

◆ isl_min

#define isl_min (   a,
  b 
)    ((a < b) ? (a) : (b))

Definition at line 155 of file ctx.h.

◆ isl_realloc

#define isl_realloc (   ctx,
  ptr,
  type,
  size 
)
Value:
ptr, size))
void * isl_realloc_or_die(isl_ctx *ctx, void *ptr, size_t size)
Definition: isl_ctx.c:109

Definition at line 126 of file ctx.h.

◆ isl_realloc_array

#define isl_realloc_array (   ctx,
  ptr,
  type,
  n 
)     isl_realloc(ctx,ptr,type,(n)*sizeof(type))

Definition at line 134 of file ctx.h.

◆ isl_realloc_type

#define isl_realloc_type (   ctx,
  ptr,
  type 
)    isl_realloc(ctx,ptr,type,sizeof(type))

Definition at line 130 of file ctx.h.

◆ isl_size_error

#define isl_size_error   ((int) -1)

Definition at line 97 of file ctx.h.

Typedef Documentation

◆ isl_ctx

typedef struct isl_ctx isl_ctx

Definition at line 99 of file ctx.h.

◆ isl_size

typedef int isl_size

Definition at line 96 of file ctx.h.

Enumeration Type Documentation

◆ isl_bool

enum isl_bool
Enumerator
isl_bool_error 
isl_bool_false 
isl_bool_true 

Definition at line 89 of file ctx.h.

◆ isl_error

enum isl_error
Enumerator
isl_error_none 
isl_error_abort 
isl_error_alloc 
isl_error_unknown 
isl_error_internal 
isl_error_invalid 
isl_error_quota 
isl_error_unsupported 

Definition at line 74 of file ctx.h.

◆ isl_stat

enum isl_stat
Enumerator
isl_stat_error 
isl_stat_ok 

Definition at line 84 of file ctx.h.

Function Documentation

◆ isl_bool_not()

isl_bool isl_bool_not ( isl_bool  b)

◆ isl_bool_ok()

isl_bool isl_bool_ok ( int  b)

Definition at line 46 of file isl_ctx.c.

References b(), isl_bool_false, and isl_bool_true.

Referenced by any_scheduled_after(), bin_try_get_match(), constraint_equal(), context_tab_insert_div(), coscheduled_node(), domain_less(), edge_has_src_and_dst(), FN(), has_constraint(), has_ineq(), has_sign(), incremental_on_entire_domain(), is_independent(), isl_aff_involves_locals(), isl_aff_is_cst(), isl_aff_is_nan(), isl_aff_plain_is_zero(), isl_ast_build_need_schedule_map(), isl_ast_expr_is_equal(), isl_ast_node_for_is_degenerate(), isl_ast_node_if_has_else_node(), isl_basic_set_involves_locals(), isl_constraint_is_equality(), isl_constraint_is_lower_bound(), isl_constraint_is_upper_bound(), isl_id_eq(), isl_id_has_name_and_user(), isl_local_div_is_marked_unknown(), isl_local_space_is_div_equality(), isl_mat_has_linearly_independent_rows(), isl_point_is_void(), isl_poly_is_cst(), isl_poly_is_equal(), isl_poly_is_infty(), isl_poly_is_nan(), isl_poly_is_neginfty(), isl_poly_is_negone(), isl_poly_is_one(), isl_poly_is_zero(), isl_qpolynomial_fold_is_empty(), isl_schedule_band_get_permutable(), isl_schedule_band_member_get_coincident(), isl_schedule_node_has_children(), isl_schedule_node_has_next_sibling(), isl_schedule_node_has_parent(), isl_schedule_node_has_previous_sibling(), isl_schedule_tree_is_subtree_anchored(), isl_schedule_tree_plain_is_equal(), isl_space_domain_is_wrapping(), isl_space_has_dim_id(), isl_space_has_dim_name(), isl_space_has_tuple_id(), isl_space_has_tuple_name(), isl_space_is_map(), isl_space_is_wrapping(), isl_space_range_is_wrapping(), isl_stream_yaml_next(), isl_tab_need_undo(), isl_token_has_str(), isl_union_map_contains(), isl_union_map_isa_map(), isl_val_abs_eq(), isl_val_eq(), isl_val_eq_si(), isl_val_gt_si(), isl_val_is_divisible_by(), isl_val_is_infty(), isl_val_is_int(), isl_val_is_nan(), isl_val_is_neg(), isl_val_is_neginfty(), isl_val_is_negone(), isl_val_is_nonneg(), isl_val_is_nonpos(), isl_val_is_one(), isl_val_is_pos(), isl_val_is_rat(), isl_val_is_zero(), isl_val_le(), isl_val_lt(), isl_val_ne(), isl_vec_is_equal(), isl_vec_is_zero(), max_constraint_equal(), next_is_opposite(), next_is_sequence(), ok_to_merge_coincident(), parallel_constraints(), same_name(), test_isl_bool(), and uset_is_bound().

◆ isl_calloc_or_die()

void * isl_calloc_or_die ( isl_ctx ctx,
size_t  nmemb,
size_t  size 
)

Definition at line 99 of file isl_ctx.c.

References check_non_null(), isl_ctx_next_operation(), and size.

◆ isl_ctx_abort()

void isl_ctx_abort ( isl_ctx ctx)

Definition at line 362 of file isl_ctx.c.

References isl_ctx::abort.

◆ isl_ctx_aborted()

int isl_ctx_aborted ( isl_ctx ctx)

Definition at line 374 of file isl_ctx.c.

References isl_ctx::abort.

◆ isl_ctx_alloc()

isl_ctx * isl_ctx_alloc ( void  )

Definition at line 261 of file isl_ctx.c.

References isl_ctx_alloc_with_options().

Referenced by main().

◆ isl_ctx_alloc_with_options()

isl_ctx * isl_ctx_alloc_with_options ( struct isl_args args,
__isl_take void *  opt 
)

Referenced by ISL_ARG_CHOICE(), and main().

◆ isl_ctx_deref()

void isl_ctx_deref ( struct isl_ctx ctx)

◆ isl_ctx_free()

void isl_ctx_free ( isl_ctx ctx)

◆ isl_ctx_get_max_operations()

unsigned long isl_ctx_get_max_operations ( isl_ctx ctx)

◆ isl_ctx_last_error()

enum isl_error isl_ctx_last_error ( isl_ctx ctx)

◆ isl_ctx_last_error_file()

const char * isl_ctx_last_error_file ( isl_ctx ctx)

Definition at line 335 of file isl_ctx.c.

References isl_ctx::error_file.

◆ isl_ctx_last_error_line()

int isl_ctx_last_error_line ( isl_ctx ctx)

Definition at line 342 of file isl_ctx.c.

References isl_ctx::error_line.

◆ isl_ctx_last_error_msg()

const char * isl_ctx_last_error_msg ( isl_ctx ctx)

Definition at line 328 of file isl_ctx.c.

References isl_ctx::error_msg.

◆ isl_ctx_options()

struct isl_options * isl_ctx_options ( isl_ctx ctx)

Definition at line 314 of file isl_ctx.c.

References isl_ctx::opt.

◆ isl_ctx_parse_options()

int isl_ctx_parse_options ( isl_ctx ctx,
int  argc,
char **  argv,
unsigned  flags 
)

Definition at line 379 of file isl_ctx.c.

References isl_args_parse(), isl_ctx::user_args, and isl_ctx::user_opt.

Referenced by polly::Scop::Scop().

◆ isl_ctx_peek_options()

void * isl_ctx_peek_options ( isl_ctx ctx,
struct isl_args args 
)

Definition at line 187 of file isl_ctx.c.

References find_nested_options(), isl_ctx::opt, isl_ctx::user_args, and isl_ctx::user_opt.

◆ isl_ctx_ref()

void isl_ctx_ref ( struct isl_ctx ctx)

◆ isl_ctx_reset_error()

void isl_ctx_reset_error ( isl_ctx ctx)

◆ isl_ctx_reset_operations()

void isl_ctx_reset_operations ( isl_ctx ctx)

Definition at line 404 of file isl_ctx.c.

References isl_ctx::operations.

Referenced by polly::IslMaxOperationsGuard::IslMaxOperationsGuard().

◆ isl_ctx_resume()

void isl_ctx_resume ( isl_ctx ctx)

Definition at line 368 of file isl_ctx.c.

References isl_ctx::abort.

◆ isl_ctx_set_error()

void isl_ctx_set_error ( isl_ctx ctx,
enum isl_error  error 
)

Definition at line 357 of file isl_ctx.c.

References isl_ctx_set_full_error().

Referenced by isl_ctx_next_operation().

◆ isl_ctx_set_max_operations()

void isl_ctx_set_max_operations ( isl_ctx ctx,
unsigned long  max_operations 
)

◆ isl_handle_error()

void isl_handle_error ( isl_ctx ctx,
enum isl_error  error,
const char *  msg,
const char *  file,
int  line 
)

◆ isl_malloc_or_die()

void * isl_malloc_or_die ( isl_ctx ctx,
size_t  size 
)

Definition at line 89 of file isl_ctx.c.

References check_non_null(), isl_ctx_next_operation(), and size.

◆ isl_realloc_or_die()

void * isl_realloc_or_die ( isl_ctx ctx,
void *  ptr,
size_t  size 
)

Definition at line 109 of file isl_ctx.c.

References check_non_null(), isl_ctx_next_operation(), and size.

◆ isl_stat_non_null()

isl_stat isl_stat_non_null ( void *  obj)