osprey/ipa/common/ipc_ty_hash.cxx File Reference

#include <stdint.h>
#include <ext/hash_set>
#include <ext/functional>
#include "defs.h"
#include "symtab.h"
#include "ipc_symtab_merge.h"
#include "ipc_ty_hash.h"
#include "config_ipa.h"
#include <ext/hash_map>

Include dependency graph for ipc_ty_hash.cxx:

Go to the source code of this file.

Defines

#define __STDC_LIMIT_MACROS

Typedefs

typedef hashtable< TY_IDX, TY,
TY_HASH, TY_EXTRACT_KEY,
equal_to< TY >
, mempool_allocator< TY_IDX > > 
TY_HASH_TABLE
typedef hashtable< TY_IDX, TY,
TY_HASH, TY_EXTRACT_KEY,
TY_IS_EQUIVALENT,
mempool_allocator< TY_IDX > > 
NEW_TY_HASH_TABLE
typedef hashtable< FLD_IDX,
FLD_IDX, FLD_HASH, identity
< FLD_IDX >, FLD_IS_EQUIVALENT,
mempool_allocator< FLD_IDX > > 
FLD_HASH_TABLE
typedef hashtable< ARB_IDX,
ARB_IDX, ARB_HASH, identity
< ARB_IDX >, ARB_IS_EQUIVALENT,
mempool_allocator< ARB_IDX > > 
ARB_HASH_TABLE
typedef hashtable< TYLIST_IDX,
TYLIST_IDX, TYLIST_HASH,
identity< TYLIST_IDX >
, TYLIST_IS_EQUIVALENT,
mempool_allocator< TYLIST_IDX > > 
TYLIST_HASH_TABLE
typedef hash_multiset
< TY_INDEX, partial_ty_hash,
ty_index_compare,
mempool_allocator< TY_INDEX > > 
RECURSIVE_TY_HASH_TABLE
typedef vector< TY_IDX,
mempool_allocator< TY_IDX > > 
RECURSIVE_TYPE

Functions/Subroutines

static TY_IDX Get_Kid_TY_IDX (TY_IDX ty_idx)
static BOOL operator== (const TY &ty1, const TY &ty2)
template<class IDX>
BOOL Is_File_Idx (IDX idx)
template<class IDX>
IDX Get_Idx (IDX idx)
template<class IDX>
IDX File_Idx (IDX idx)
BOOL FLD_is_anonymous (const FLD *fld)
BOOL FLD_last_field (const FLD *fld)
BOOL Partial_Compare_Fld (const TY &ty1, BOOL is_file1, const TY &ty2, BOOL is_file2)
BOOL Partial_Compare_Fld (FLD_HANDLE merged_fld, const FLD *new_fld)
static BOOL ARB_equal (const ARB *arb1, const ARB *arb2)
static BOOL ARB_equal (const ARB_HANDLE merged_arb, const ARB &new_arb)
BOOL Partial_Compare_Arb (const TY &ty1, BOOL is_file1, const TY &ty2, BOOL is_file2)
BOOL Partial_Compare_Arb (ARB_HANDLE merged_arb, const ARB *new_arb)
size_t recursive_ty_hash (TY_INDEX idx)
void Initialize_Type_Merging_Hash_Tables (MEM_POOL *pool)
void Setup_Type_Merging_Hash_Tables (const IPC_GLOBAL_TABS &original_tabs, IPC_GLOBAL_IDX_MAP &idx_map)
static void Setup_Ty (TY &ty)
TY_IDX Insert_Unique_Ty (const TY &ty)
void Insert_Allocated_Ty (TY &ty, TY_IDX ty_idx)
void Insert_Recursive_Type (TY_IDX ty_idx)
void Initialize_New_Recursive_Type (TY_IDX ty_idx)
void Finalize_New_Recursive_Type ()
void Find_Matching_Ty (const TY &ty, TY_IDX_VEC &matched_list)

Variables

static TY_IDX_MAPty_map
static SYMSTR_IDX_MAPstr_map
static const TYty_table
static const FLDfld_table
static const ARBarb_table
static const TYLISTtylist_table
static const TYty_to_be_inserted
hash_map< STR_IDX, TY_INDEX,
__new_hash::hash< STR_IDX >
, std::equal_to< STR_IDX > > 
struct_by_name_idx
static NEW_TY_HASH_TABLEty_hash_table
static FLD_HASH_TABLEfld_hash_table
static ARB_HASH_TABLEarb_hash_table
static TYLIST_HASH_TABLEtylist_hash_table
static RECURSIVE_TY_HASH_TABLErecursive_table
static RECURSIVE_TYPErecursive_type
static UINT collecting_recursive_ty = 0


Define Documentation

#define __STDC_LIMIT_MACROS

Definition at line 39 of file ipc_ty_hash.cxx.


Typedef Documentation

typedef hashtable<ARB_IDX, ARB_IDX, ARB_HASH, identity<ARB_IDX>, ARB_IS_EQUIVALENT, mempool_allocator<ARB_IDX> > ARB_HASH_TABLE

Definition at line 416 of file ipc_ty_hash.cxx.

typedef hashtable<FLD_IDX, FLD_IDX, FLD_HASH, identity<FLD_IDX>, FLD_IS_EQUIVALENT, mempool_allocator<FLD_IDX> > FLD_HASH_TABLE

Definition at line 325 of file ipc_ty_hash.cxx.

typedef hashtable<TY_IDX, TY, TY_HASH, TY_EXTRACT_KEY, TY_IS_EQUIVALENT, mempool_allocator<TY_IDX> > NEW_TY_HASH_TABLE

Definition at line 176 of file ipc_ty_hash.cxx.

typedef hash_multiset<TY_INDEX, partial_ty_hash, ty_index_compare, mempool_allocator<TY_INDEX> > RECURSIVE_TY_HASH_TABLE

Definition at line 980 of file ipc_ty_hash.cxx.

Definition at line 992 of file ipc_ty_hash.cxx.

typedef hashtable<TY_IDX, TY, TY_HASH, TY_EXTRACT_KEY, equal_to<TY>, mempool_allocator<TY_IDX> > TY_HASH_TABLE

Definition at line 172 of file ipc_ty_hash.cxx.

typedef hashtable<TYLIST_IDX, TYLIST_IDX, TYLIST_HASH, identity<TYLIST_IDX>, TYLIST_IS_EQUIVALENT, mempool_allocator<TYLIST_IDX> > TYLIST_HASH_TABLE

Definition at line 516 of file ipc_ty_hash.cxx.


Function Documentation

static BOOL ARB_equal ( const ARB_HANDLE  merged_arb,
const ARB new_arb 
) [inline, static]

Definition at line 607 of file ipc_ty_hash.cxx.

References ARB_HANDLE::Entry(), and UINT64.

static BOOL ARB_equal ( const ARB arb1,
const ARB arb2 
) [inline, static]

Definition at line 595 of file ipc_ty_hash.cxx.

References UINT64.

Referenced by Partial_Compare_Arb().

template<class IDX>
IDX @3070::File_Idx ( IDX  idx  )  [inline, static]

Definition at line 195 of file ipc_ty_hash.cxx.

Referenced by Find_Matching_Ty(), and Setup_Ty().

void Finalize_New_Recursive_Type (  ) 

Definition at line 1224 of file ipc_ty_hash.cxx.

References i, Insert_Recursive_Type(), and Is_True.

Referenced by Insert_Ty_Specific().

void Find_Matching_Ty ( const TY ty,
TY_IDX_VEC matched_list 
)

Definition at line 1246 of file ipc_ty_hash.cxx.

References File_Idx(), first, and make_TY_IDX().

Referenced by Find_Recursive_Type().

BOOL FLD_is_anonymous ( const FLD fld  )  [inline]

Definition at line 201 of file ipc_ty_hash.cxx.

References FLD::flags, and FLD_IS_ANONYMOUS.

BOOL FLD_last_field ( const FLD fld  )  [inline]

Definition at line 204 of file ipc_ty_hash.cxx.

References FLD::flags, and FLD_LAST_FIELD.

template<class IDX>
IDX @3070::Get_Idx ( IDX  idx  )  [inline, static]

Definition at line 190 of file ipc_ty_hash.cxx.

Referenced by recursive_ty_hash().

static TY_IDX Get_Kid_TY_IDX ( TY_IDX  ty_idx  )  [inline, static]

void Initialize_New_Recursive_Type ( TY_IDX  ty_idx  ) 

Definition at line 1213 of file ipc_ty_hash.cxx.

References Is_True.

Referenced by Insert_Ty_Specific().

void Initialize_Type_Merging_Hash_Tables ( MEM_POOL pool  ) 

void Insert_Allocated_Ty ( TY ty,
TY_IDX  ty_idx 
)

void Insert_Recursive_Type ( TY_IDX  ty_idx  ) 

TY_IDX Insert_Unique_Ty ( const TY ty  ) 

template<class IDX>
BOOL @3070::Is_File_Idx ( IDX  idx  )  [inline, static]

Definition at line 185 of file ipc_ty_hash.cxx.

Referenced by recursive_ty_hash(), and Setup_Ty().

static BOOL operator== ( const TY ty1,
const TY ty2 
) [inline, static]

Definition at line 90 of file ipc_ty_hash.cxx.

References p1, p2, TY::Pu_flags(), and UINT64.

BOOL Partial_Compare_Arb ( ARB_HANDLE  merged_arb,
const ARB new_arb 
)

Definition at line 641 of file ipc_ty_hash.cxx.

References ARB_dimension(), ARB_equal(), ARB::dimension, FALSE, i, TRUE, and UINT.

BOOL Partial_Compare_Arb ( const TY ty1,
BOOL  is_file1,
const TY ty2,
BOOL  is_file2 
)

Definition at line 621 of file ipc_ty_hash.cxx.

References TY::Arb(), ARB_equal(), Arb_Table, ARB::dimension, FALSE, i, TRUE, and UINT.

Referenced by array_access::validate().

BOOL Partial_Compare_Fld ( FLD_HANDLE  merged_fld,
const FLD new_fld 
)

BOOL Partial_Compare_Fld ( const TY ty1,
BOOL  is_file1,
const TY ty2,
BOOL  is_file2 
)

size_t @3070::recursive_ty_hash ( TY_INDEX  idx  )  [static]

static void Setup_Ty ( TY ty  )  [static]

void Setup_Type_Merging_Hash_Tables ( const IPC_GLOBAL_TABS original_tabs,
IPC_GLOBAL_IDX_MAP idx_map 
)


Variable Documentation

Definition at line 987 of file ipc_ty_hash.cxx.

const ARB* arb_table [static]

Definition at line 63 of file ipc_ty_hash.cxx.

Definition at line 997 of file ipc_ty_hash.cxx.

Definition at line 986 of file ipc_ty_hash.cxx.

const FLD* fld_table [static]

Definition at line 62 of file ipc_ty_hash.cxx.

Definition at line 990 of file ipc_ty_hash.cxx.

Definition at line 995 of file ipc_ty_hash.cxx.

Definition at line 58 of file ipc_ty_hash.cxx.

Definition at line 56 of file ipc_type_merge.cxx.

Referenced by Find_Recursive_Type(), Insert_Allocated_Ty(), and Insert_Ty().

Definition at line 985 of file ipc_ty_hash.cxx.

TY_IDX_MAP* ty_map [static]

Definition at line 57 of file ipc_ty_hash.cxx.

const TY* ty_table [static]

Definition at line 61 of file ipc_ty_hash.cxx.

const TY* ty_to_be_inserted [static]

Definition at line 66 of file ipc_ty_hash.cxx.

Definition at line 988 of file ipc_ty_hash.cxx.

const TYLIST* tylist_table [static]

Definition at line 64 of file ipc_ty_hash.cxx.

Referenced by recursive_ty_hash(), Setup_Ty(), and Setup_Type_Merging_Hash_Tables().


Generated on Wed Apr 8 15:09:38 2009 for Open64 by  doxygen 1.5.6