ctrump/common/intmap.h File Reference

整数テーブル More...

#include "ctrump/common/dll.h"

Include dependency graph for intmap.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ctrump_intmap_bucket
 intmapの中で値を保持しておくノード More...
struct  ctrump_intmap
 整数テーブル More...
struct  ctrump_intmap_iterator
 テーブルイテレータ テーブルをトラバースする場合は、以下の手順に従う More...

Defines

#define ctrump_intmap_resize(d, s)   ctrump_intmap_resize_pool(d,s,NULL);
 リサイズ
#define MUL15(x)   ((((unsigned int)(x))*3U)/2U)

Functions

CTRUMP_EXTDEF void ctrump_intmap_init (struct ctrump_intmap *map, int size)
 初期化
CTRUMP_EXTDEF void ctrump_intmap_init_pool (struct ctrump_intmap *map, int size, struct ctrump_mempool *pool)
 初期化
CTRUMP_EXTDEF void ctrump_intmap_free (struct ctrump_intmap *map)
 テーブル解放
CTRUMP_EXTDEF void ctrump_intmap_resize_pool (struct ctrump_intmap *dest, const struct ctrump_intmap *src, struct ctrump_mempool *pool)
 dest上に新たに適切なサイズのテーブルを作り、srcの内容をコピーする
  • src はfreeされない。必要なら呼び出し後にctrump_intmap_freeすること
  • srcとdestは同一のポインタにならないこと

CTRUMP_EXTDEF struct
ctrump_intmap_bucket
ctrump_intmap_lookup_add (struct ctrump_intmap *map, int *is_found, unsigned int key)
 検索の実行 値の検索見つからなかった場合は、is_foundを0に設定し、 新たに作ったbucketを返す
CTRUMP_EXTDEF void * ctrump_intmap_lookup (struct ctrump_intmap *map, int *found, unsigned int key)
 検索の実行 値が見つからなかった場合は found を0に設定する
CTRUMP_EXTDEF struct
ctrump_intmap_bucket
ctrump_intmap_lookup_bucket (struct ctrump_intmap *map, int *found, unsigned int key)
 検索の実行 値が見つからなかった場合はfoundを0に設定し、NULLを返す
CTRUMP_EXTDEF void ctrump_intmap_iterator_begin (struct ctrump_intmap_iterator *i, struct ctrump_intmap *map)
 イテレータの初期化
CTRUMP_EXTDEF int ctrump_intmap_iterator_next (struct ctrump_intmap_bucket **ret, struct ctrump_intmap_iterator *i, struct ctrump_intmap *map)
 イテレータを進める
CTRUMP_EXTDEF int ctrump_intmap_get_num_elem (struct ctrump_intmap *map)
 mapのサイズを取得


Detailed Description

整数テーブル

整数値をキーにして値を検索するテーブル

Definition in file intmap.h.


Define Documentation

#define ctrump_intmap_resize ( d,
 )     ctrump_intmap_resize_pool(d,s,NULL);

リサイズ

Definition at line 93 of file intmap.h.

#define MUL15 (  )     ((((unsigned int)(x))*3U)/2U)

Definition at line 150 of file intmap.h.


Function Documentation

CTRUMP_EXTDEF void ctrump_intmap_free ( struct ctrump_intmap map  ) 

テーブル解放

Definition at line 289 of file intmap.c.

References ctrump_intmap::buckets, ctrump_intmap_bucket::chain, and ctrump_intmap::size.

Referenced by build_bfs_order().

CTRUMP_EXTDEF int ctrump_intmap_get_num_elem ( struct ctrump_intmap map  ) 

mapのサイズを取得

Definition at line 189 of file intmap.c.

References ctrump_intmap::buckets, ctrump_intmap_bucket::chain, and ctrump_intmap::size.

CTRUMP_EXTDEF void ctrump_intmap_init ( struct ctrump_intmap map,
int  size 
)

初期化

Parameters:
map 初期化するテーブル
size テーブルサイズ

Definition at line 44 of file intmap.c.

References ctrump_intmap::buckets, ctrump_intmap::pool, and ctrump_intmap::size.

Referenced by build_bfs_order(), and ctrump_intmap_resize_pool().

CTRUMP_EXTDEF void ctrump_intmap_init_pool ( struct ctrump_intmap map,
int  size,
struct ctrump_mempool pool 
)

初期化

Parameters:
map 初期化するテーブル
size テーブルサイズ
pool メモリアロケートに使うプール
Note:
poolを使って初期化した場合は、以後メモリ割り当てはそこから 行われるのでctrump_intmap_freeは必要無い

Definition at line 59 of file intmap.c.

References ctrump_intmap::buckets, ctrump_mempool_alloc, ctrump_intmap::pool, and ctrump_intmap::size.

Referenced by build_cfg(), ctrump_intmap_resize_pool(), and get_distance_vector().

CTRUMP_EXTDEF void ctrump_intmap_iterator_begin ( struct ctrump_intmap_iterator i,
struct ctrump_intmap map 
)

イテレータの初期化

Parameters:
i 初期化するイテレータ
map イテレートする対象

Definition at line 162 of file intmap.c.

References iter_next().

Referenced by build_cfg(), and get_distance_vector().

CTRUMP_EXTDEF int ctrump_intmap_iterator_next ( struct ctrump_intmap_bucket **  ret,
struct ctrump_intmap_iterator i,
struct ctrump_intmap map 
)

イテレータを進める

Parameters:
ret [out] 取得したbucket
i 進めるイテレータ
map イテレートする対象
Returns:
見つかった場合は1、イテレートが終了した場合は0を返す

Definition at line 169 of file intmap.c.

References ctrump_intmap_iterator::buckets_index, ctrump_intmap_bucket::chain, iter_next(), ctrump_intmap_iterator::next, and ctrump_intmap::size.

Referenced by build_cfg(), and get_distance_vector().

CTRUMP_EXTDEF void* ctrump_intmap_lookup ( struct ctrump_intmap map,
int *  found,
unsigned int  key 
)

検索の実行 値が見つからなかった場合は found を0に設定する

Parameters:
map 検索対象
found [out] 見つかれば0以外
key 検索に使う数値
Returns:
見つかった値

Definition at line 120 of file intmap.c.

References ctrump_intmap_lookup_impl(), and ctrump_intmap_bucket::val.

Referenced by analyze_subscript_coef(), check_var_bmp_p(), extract_load_store_assign(), extract_load_store_expr_rval(), find_iv(), get_var_id(), recog_array_index(), recog_reduction_domtree(), and single_expr_subscripts_to_loop_subscript().

CTRUMP_EXTDEF struct ctrump_intmap_bucket* ctrump_intmap_lookup_add ( struct ctrump_intmap map,
int *  is_found,
unsigned int  key 
) [read]

検索の実行 値の検索見つからなかった場合は、is_foundを0に設定し、 新たに作ったbucketを返す

Parameters:
map 検索対象
is_found [out] 見つかれば0以外
key 検索に使う数値
Returns:
bucket

Definition at line 112 of file intmap.c.

References ctrump_intmap_lookup_impl().

Referenced by assign_var_info_expr(), build_bfs_order(), and test_index().

CTRUMP_EXTDEF struct ctrump_intmap_bucket* ctrump_intmap_lookup_bucket ( struct ctrump_intmap map,
int *  found,
unsigned int  key 
) [read]

検索の実行 値が見つからなかった場合はfoundを0に設定し、NULLを返す

Parameters:
map 検索対象
found [out] 見つかれば0以外
key 検索に使う数値
Returns:
見つかったbucket

Definition at line 134 of file intmap.c.

References ctrump_intmap_lookup_impl().

Referenced by test_index().

CTRUMP_EXTDEF void ctrump_intmap_resize_pool ( struct ctrump_intmap dest,
const struct ctrump_intmap src,
struct ctrump_mempool pool 
)

dest上に新たに適切なサイズのテーブルを作り、srcの内容をコピーする

  • src はfreeされない。必要なら呼び出し後にctrump_intmap_freeすること
  • srcとdestは同一のポインタにならないこと

Parameters:
dest 新しくつくるテーブル
src もとのテーブル
pool メモリプール

Definition at line 228 of file intmap.c.

References ctrump_intmap::buckets, ctrump_intmap_bucket::chain, ctrump_intmap_init(), ctrump_intmap_init_pool(), ctrump_mempool_alloc, ctrump_intmap_bucket::key, NELEM, ctrump_intmap::size, sizes, and ctrump_intmap_bucket::val.

Referenced by build_bfs_order(), and build_cfg().


Generated on Tue Mar 31 20:19:24 2009 for ctrump by  doxygen 1.5.6