#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>

Go to the source code of this file.
| #define __STDC_LIMIT_MACROS |
Definition at line 39 of file ipc_ty_hash.cxx.
| 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.
| typedef vector<TY_IDX, mempool_allocator<TY_IDX> > RECURSIVE_TYPE |
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.
| static BOOL ARB_equal | ( | const ARB_HANDLE | merged_arb, | |
| const ARB & | new_arb | |||
| ) | [inline, static] |
Definition at line 595 of file ipc_ty_hash.cxx.
References UINT64.
Referenced by Partial_Compare_Arb().
| IDX @3070::File_Idx | ( | IDX | idx | ) | [inline, static] |
| 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().
| IDX @3070::Get_Idx | ( | IDX | idx | ) | [inline, static] |
Definition at line 73 of file ipc_ty_hash.cxx.
References Clean_TY_IDX(), Is_True, TY_IDX_MAP::map_, Replace_TY_IDX_index(), TY_IDX_index(), TY_Inserted(), and Valid_TY_IDX().
Referenced by Setup_Ty().
Definition at line 1213 of file ipc_ty_hash.cxx.
References Is_True.
Referenced by Insert_Ty_Specific().
Definition at line 1000 of file ipc_ty_hash.cxx.
References __alignof__, CXX_NEW, i, IPA_Enable_Old_Type_Merge, Is_True, make_TY_IDX(), TY_Table_Size(), and UINT.
Referenced by ipa_dot_so_init().
Definition at line 1177 of file ipc_ty_hash.cxx.
References IPA_Enable_Old_Type_Merge, Is_True, KIND_STRUCT, TY::name_idx, result, Setup_Ty(), struct_by_name_idx, TY_IDX_index(), and TY_kind.
Referenced by Insert_Ty_Specific(), and Merge_All_Types().
Definition at line 1195 of file ipc_ty_hash.cxx.
References IPA_Enable_Old_Type_Merge, KIND_FUNCTION, KIND_POINTER, KIND_STRUCT, TY_IDX_index(), TY_is_incomplete_struct(), TY_kind, and Ty_Table.
Referenced by Finalize_New_Recursive_Type(), and Merge_All_Types().
Definition at line 1157 of file ipc_ty_hash.cxx.
References SEGMENTED_ARRAY< T, block_size >::Insert(), IPA_Enable_Old_Type_Merge, make_TY_IDX(), result, Setup_Ty(), and Ty_tab.
Referenced by Insert_Ty(), Insert_Ty_Specific(), and Validate_Recursive_Type().
| BOOL @3070::Is_File_Idx | ( | IDX | idx | ) | [inline, static] |
| 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.
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 | |||
| ) |
Definition at line 561 of file ipc_ty_hash.cxx.
References FALSE, flags, FLD_is_anonymous(), FLD_LAST_FIELD, FLD_name_idx(), IPA_Enable_Old_Type_Merge, Make_fld_iter(), FLD::name_idx, str_map, TRUE, and UINT64.
Definition at line 526 of file ipc_ty_hash.cxx.
References FALSE, TY::Fld(), FLD_is_anonymous(), FLD_last_field(), Fld_Table, i, FLD::name_idx, TRUE, UINT, and UINT64.
Referenced by struct_access::validate().
Definition at line 660 of file ipc_ty_hash.cxx.
References TY::Arb(), ARB_dimension(), ARB_flags(), ARB_lbnd_val, ARB_stride_val, ARB_ubnd_val, BOOL, ARB::dimension, Fail_FmtAssertion(), FALSE, ARB::flags, flags, TY::Fld(), FLD_is_anonymous(), FLD_LAST_FIELD, FLD_last_field(), FLD_name_idx(), Get_Idx(), i, Is_File_Idx(), TY::kind, KIND_ARRAY, KIND_FUNCTION, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, KIND_VOID, ARB::Lbnd_val(), Make_arb_iter(), Make_fld_iter(), make_TY_IDX(), Make_tylist_iter(), TY::mtype, FLD::name_idx, str_map, ARB::Stride_val(), TY_anonymous, TY_arb(), TY_fld, TY_IDX_index(), TY_kind, TY_name_idx(), TY_pointed, Ty_Table, TY_tylist(), tylist_table, ARB::Ubnd_val(), UINT, and UINT32.
Definition at line 1084 of file ipc_ty_hash.cxx.
References TY::Arb(), ARB_LAST_DIMEN, Arb_Table, Fail_FmtAssertion(), File_Idx(), ARB::flags, TY::Fld(), FLD_last_field(), Fld_Table, Get_Kid_TY_IDX(), SEGMENTED_ARRAY< T, block_size >::Insert(), Is_File_Idx(), KIND_ARRAY, KIND_FUNCTION, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, KIND_VOID, FLD::name_idx, Set_FLD_name_idx(), Set_FLD_st(), Set_FLD_type(), Set_TY_arb(), Set_TY_etype(), Set_TY_fld(), Set_TY_name_idx(), Set_TY_pointed(), Set_TY_tylist(), str_map, TY_etype, TY_kind, TY_name_idx(), TY_pointed, TY_tylist(), Tylist_Table, tylist_table, and FLD::type.
Referenced by Insert_Allocated_Ty(), and Insert_Unique_Ty().
| void Setup_Type_Merging_Hash_Tables | ( | const IPC_GLOBAL_TABS & | original_tabs, | |
| IPC_GLOBAL_IDX_MAP & | idx_map | |||
| ) |
Definition at line 1070 of file ipc_ty_hash.cxx.
References IPC_GLOBAL_TABS::arb_tab, IPC_GLOBAL_TABS::fld_tab, str_map, IPC_GLOBAL_IDX_MAP::sym_str, IPC_GLOBAL_IDX_MAP::ty, IPC_GLOBAL_TABS::ty_tab, IPC_GLOBAL_TABS::tylist_tab, and tylist_table.
Referenced by Merge_All_Types().
ARB_HASH_TABLE* arb_hash_table [static] |
Definition at line 987 of file ipc_ty_hash.cxx.
Definition at line 63 of file ipc_ty_hash.cxx.
UINT collecting_recursive_ty = 0 [static] |
Definition at line 997 of file ipc_ty_hash.cxx.
FLD_HASH_TABLE* fld_hash_table [static] |
Definition at line 986 of file ipc_ty_hash.cxx.
Definition at line 62 of file ipc_ty_hash.cxx.
RECURSIVE_TY_HASH_TABLE* recursive_table [static] |
Definition at line 990 of file ipc_ty_hash.cxx.
RECURSIVE_TYPE* recursive_type [static] |
Definition at line 995 of file ipc_ty_hash.cxx.
SYMSTR_IDX_MAP* str_map [static] |
Definition at line 58 of file ipc_ty_hash.cxx.
| hash_map<STR_IDX, TY_INDEX, __new_hash::hash<STR_IDX>, std::equal_to<STR_IDX> > struct_by_name_idx |
Definition at line 56 of file ipc_type_merge.cxx.
Referenced by Find_Recursive_Type(), Insert_Allocated_Ty(), and Insert_Ty().
NEW_TY_HASH_TABLE* ty_hash_table [static] |
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.
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.
TYLIST_HASH_TABLE* tylist_hash_table [static] |
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().
1.5.6