Polly 20.0.0git
Classes | Macros | Functions
hmap_templ.c File Reference
#include <isl/ctx.h>
#include <isl/hash.h>
#include <isl/stream.h>

Go to the source code of this file.

Classes

struct  ISL_HMAP
 

Macros

#define ISL_xCAT(A, B)   A ## B
 
#define ISL_CAT(A, B)   ISL_xCAT(A,B)
 
#define ISL_xFN(TYPE, NAME)   TYPE ## _ ## NAME
 
#define ISL_FN(TYPE, NAME)   ISL_xFN(TYPE,NAME)
 
#define ISL_xS(TYPE1, TYPE2, NAME)   struct isl_ ## TYPE1 ## _ ## TYPE2 ## _ ## NAME
 
#define ISL_yS(TYPE1, TYPE2, NAME)   ISL_xS(TYPE1,TYPE2,NAME)
 
#define ISL_S(NAME)   ISL_yS(ISL_KEY,ISL_VAL,NAME)
 

Functions

 ISL_S (pair)
 
__isl_give ISL_HMAPISL_FN (ISL_HMAP, alloc)
 
static isl_stat free_pair (void **entry, void *user)
 
__isl_null ISL_HMAPISL_FN (ISL_HMAP, free)
 
isl_ctxISL_FN (ISL_HMAP, get_ctx)
 
static isl_stat add_key_val (__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
 
__isl_give ISL_HMAPISL_FN (ISL_HMAP, dup)
 
__isl_give ISL_HMAPISL_FN (ISL_HMAP, cow)
 
__isl_give ISL_HMAPISL_FN (ISL_HMAP, copy)
 
static isl_bool has_key (const void *entry, const void *c_key)
 
__isl_give ISL_MAYBE (ISL_VAL)
 
isl_bool ISL_FN (ISL_HMAP, has)
 
__isl_give ISL_VALISL_FN (ISL_HMAP, get)
 
__isl_give ISL_HMAPISL_FN (ISL_HMAP, drop)
 
__isl_give ISL_HMAPISL_FN (ISL_HMAP, set)
 
 ISL_S (foreach_data)
 
static isl_stat call_on_copy (void **entry, void *user)
 
isl_stat ISL_FN (ISL_HMAP, foreach)
 
 ISL_S (every_data)
 
static isl_bool call_on_pair (void **entry, void *user)
 
isl_bool ISL_FN (ISL_HMAP, every)
 
 ISL_S (print_data)
 
static isl_stat print_pair (__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
 
__isl_give isl_printerISL_FN (isl_printer_print, ISL_HMAP_SUFFIX)
 
void ISL_FN (ISL_HMAP, dump)
 
__isl_give char * ISL_FN (ISL_HMAP, to_str)
 

Macro Definition Documentation

◆ ISL_CAT

#define ISL_CAT (   A,
  B 
)    ISL_xCAT(A,B)

Definition at line 18 of file hmap_templ.c.

◆ ISL_FN

#define ISL_FN (   TYPE,
  NAME 
)    ISL_xFN(TYPE,NAME)

Definition at line 20 of file hmap_templ.c.

◆ ISL_S

#define ISL_S (   NAME)    ISL_yS(ISL_KEY,ISL_VAL,NAME)

Definition at line 23 of file hmap_templ.c.

◆ ISL_xCAT

#define ISL_xCAT (   A,
  B 
)    A ## B

Definition at line 17 of file hmap_templ.c.

◆ ISL_xFN

#define ISL_xFN (   TYPE,
  NAME 
)    TYPE ## _ ## NAME

Definition at line 19 of file hmap_templ.c.

◆ ISL_xS

#define ISL_xS (   TYPE1,
  TYPE2,
  NAME 
)    struct isl_ ## TYPE1 ## _ ## TYPE2 ## _ ## NAME

Definition at line 21 of file hmap_templ.c.

◆ ISL_yS

#define ISL_yS (   TYPE1,
  TYPE2,
  NAME 
)    ISL_xS(TYPE1,TYPE2,NAME)

Definition at line 22 of file hmap_templ.c.

Function Documentation

◆ add_key_val()

static isl_stat add_key_val ( __isl_take ISL_KEY key,
__isl_take ISL_VAL val,
void *  user 
)
static

Definition at line 85 of file hmap_templ.c.

References hmap, ISL_FN, isl_stat_error, isl_stat_ok, key, set, user, and val.

Referenced by ISL_FN().

◆ call_on_copy()

static isl_stat call_on_copy ( void **  entry,
void *  user 
)
static

Definition at line 339 of file hmap_templ.c.

References isl_hash_table_entry::data, ISL_FN, ISL_KEY, ISL_S, ISL_VAL, and user.

Referenced by FN(), and ISL_FN().

◆ call_on_pair()

static isl_bool call_on_pair ( void **  entry,
void *  user 
)
static

Definition at line 378 of file hmap_templ.c.

References isl_hash_table_entry::data, ISL_S, and user.

Referenced by ISL_FN().

◆ free_pair()

static isl_stat free_pair ( void **  entry,
void *  user 
)
static

Definition at line 54 of file hmap_templ.c.

References ISL_FN, ISL_KEY, ISL_S, isl_stat_ok, and ISL_VAL.

Referenced by ISL_FN().

◆ has_key()

static isl_bool has_key ( const void *  entry,
const void *  c_key 
)
static

Definition at line 132 of file hmap_templ.c.

References ISL_KEY, ISL_KEY_IS_EQUAL, ISL_S, and key.

Referenced by ISL_FN(), and ISL_MAYBE().

◆ ISL_FN() [1/15]

__isl_give ISL_HMAP * ISL_FN ( ISL_HMAP  ,
alloc   
)

◆ ISL_FN() [2/15]

__isl_give ISL_HMAP * ISL_FN ( ISL_HMAP  ,
copy   
)

Definition at line 123 of file hmap_templ.c.

References hmap.

◆ ISL_FN() [3/15]

__isl_give ISL_HMAP * ISL_FN ( ISL_HMAP  ,
cow   
)

Definition at line 112 of file hmap_templ.c.

References dup(), hmap, and ISL_FN.

◆ ISL_FN() [4/15]

__isl_give ISL_HMAP * ISL_FN ( ISL_HMAP  ,
drop   
)

◆ ISL_FN() [5/15]

void ISL_FN ( ISL_HMAP  ,
dump   
)

◆ ISL_FN() [6/15]

__isl_give ISL_HMAP * ISL_FN ( ISL_HMAP  ,
dup   
)

Definition at line 98 of file hmap_templ.c.

References add_key_val(), isl_printer::ctx, dup(), hmap, and ISL_FN.

◆ ISL_FN() [7/15]

isl_bool ISL_FN ( ISL_HMAP  ,
every   
)

◆ ISL_FN() [8/15]

isl_stat ISL_FN ( ISL_HMAP  ,
foreach   
)

◆ ISL_FN() [9/15]

__isl_null ISL_HMAP * ISL_FN ( ISL_HMAP  ,
free   
)

◆ ISL_FN() [10/15]

__isl_give ISL_VAL * ISL_FN ( ISL_HMAP  ,
get   
)

Definition at line 199 of file hmap_templ.c.

References hmap, ISL_FN, ISL_KEY, ISL_VAL, key, res, and try_get().

◆ ISL_FN() [11/15]

isl_ctx * ISL_FN ( ISL_HMAP  ,
get_ctx   
)

Definition at line 77 of file hmap_templ.c.

References isl_printer::ctx, and hmap.

◆ ISL_FN() [12/15]

isl_bool ISL_FN ( ISL_HMAP  ,
has   
)

Definition at line 184 of file hmap_templ.c.

References hmap, ISL_FN, ISL_MAYBE, ISL_VAL, key, res, and try_get().

◆ ISL_FN() [13/15]

__isl_give ISL_HMAP * ISL_FN ( ISL_HMAP  ,
set   
)

◆ ISL_FN() [14/15]

__isl_give char * ISL_FN ( ISL_HMAP  ,
to_str   
)

◆ ISL_FN() [15/15]

__isl_give isl_printer * ISL_FN ( isl_printer_print  ,
ISL_HMAP_SUFFIX   
)

◆ ISL_MAYBE()

__isl_give ISL_MAYBE ( ISL_VAL  )

◆ ISL_S() [1/4]

ISL_S ( every_data  )

Definition at line 370 of file hmap_templ.c.

References __isl_keep, ISL_KEY, ISL_VAL, key, test, test_user(), user, and val.

◆ ISL_S() [2/4]

ISL_S ( foreach_data  )

Definition at line 331 of file hmap_templ.c.

References __isl_take, fn, ISL_KEY, ISL_VAL, key, user, and val.

◆ ISL_S() [3/4]

ISL_S ( pair  )

Definition at line 31 of file hmap_templ.c.

References ISL_KEY, ISL_VAL, key, and val.

◆ ISL_S() [4/4]

ISL_S ( print_data  )

Definition at line 446 of file hmap_templ.c.

References p.

◆ print_pair()

static isl_stat print_pair ( __isl_take ISL_KEY key,
__isl_take ISL_VAL val,
void *  user 
)
static