osprey/common/com/wn_map.h File Reference

Go to the source code of this file.

Data Types

type  wn_map_tab

Defines

#define WN_MAP_UNDEFINED   (-1)
#define WN_MAP_DEPGRAPH   0
#define WN_MAP_PREFETCH   1
#define WN_MAP_FEEDBACK   2
#define WN_MAP_AC_INTERNAL   3
#define WN_MAP_ALIAS_CLASS   4
#define WN_MAP_RESERVED   5
#define WN_MAP_MAX   32
#define WN_MAP_TAB_Last_ID(maptab, category)   (maptab)->_last_map_id[(category)]
#define WN_MAP_Create(pool)   WN_MAP_Do_Create(Current_Map_Tab, (pool), WN_MAP_KIND_VOIDP)
#define WN_MAP32_Create(pool)   WN_MAP_Do_Create(Current_Map_Tab, (pool), WN_MAP_KIND_INT32)
#define WN_MAP64_Create(pool)   WN_MAP_Do_Create(Current_Map_Tab, (pool), WN_MAP_KIND_INT64)
#define IPA_WN_MAP_Create(maptab, pool)   WN_MAP_Do_Create((maptab), (pool), WN_MAP_KIND_VOIDP)
#define IPA_WN_MAP32_Create(maptab, pool)   WN_MAP_Do_Create((maptab), (pool), WN_MAP_KIND_INT32)
#define IPA_WN_MAP64_Create(maptab, pool)   WN_MAP_Do_Create((maptab), (pool), WN_MAP_KIND_INT64)
#define WN_MAP_Status()   IPA_WN_MAP_Status(Current_Map_Tab)
#define WN_MAP_Delete(wn_map)   IPA_WN_MAP_Delete(Current_Map_Tab, (wn_map))
#define WN_MAP_Set(wn_map, wn, thing)   IPA_WN_MAP_Set(Current_Map_Tab, (wn_map), (wn), (thing))
#define WN_MAP32_Set(wn_map, wn, thing)   IPA_WN_MAP32_Set(Current_Map_Tab, (wn_map), (wn), (thing))
#define WN_MAP64_Set(wn_map, wn, thing)   IPA_WN_MAP64_Set(Current_Map_Tab, (wn_map), (wn), (thing))
#define WN_MAP_Get(wn_map, wn)   IPA_WN_MAP_Get(Current_Map_Tab, (wn_map), (wn))
#define WN_MAP32_Get(wn_map, wn)   IPA_WN_MAP32_Get(Current_Map_Tab, (wn_map), (wn))
#define WN_MAP64_Get(wn_map, wn)   IPA_WN_MAP64_Get(Current_Map_Tab, (wn_map), (wn))
#define WN_MAP_Size(wn_map, category)   IPA_WN_MAP_Size(Current_Map_Tab, (wn_map), (category))
#define IPA_WN_MAP_Size(maptab, wn_map, category)   (maptab)->_map_size[(category)][(wn_map)]
#define WN_MAP_Get_Kind(wn_map)   (Current_Map_Tab->_kind[(wn_map)])
#define WN_MAP_Get_dont_copy(wn_map)   (Current_Map_Tab->_dont_copy[(wn_map)])
#define WN_MAP_Set_dont_copy(wn_map, dont_copy)   (Current_Map_Tab->_dont_copy[(wn_map)] = (dont_copy))

Typedefs

typedef INT32 WN_MAP
typedef struct wn_map_tab WN_MAP_TAB

Enumerations

enum  WN_MAP_KIND { WN_MAP_KIND_VOIDP = 1, WN_MAP_KIND_INT32 = 2, WN_MAP_KIND_INT64 = 3 }

Functions/Subroutines

WN_MAP_TABWN_MAP_TAB_Create (struct mem_pool *pool)
void WN_MAP_TAB_Delete (WN_MAP_TAB *maptab)
WN_MAP WN_MAP_Do_Create (WN_MAP_TAB *maptab, struct mem_pool *pool, WN_MAP_KIND kind)
WN_MAP_ID IPA_WN_MAP_Status (WN_MAP_TAB *maptab)
void IPA_WN_MAP_Delete (WN_MAP_TAB *maptab, WN_MAP wn_map)
void IPA_WN_MAP_Set (WN_MAP_TAB *maptab, WN_MAP wn_map, WN *wn, void *thing)
void IPA_WN_MAP32_Set (WN_MAP_TAB *maptab, WN_MAP wn_map, WN *wn, INT32 thing)
void IPA_WN_MAP64_Set (WN_MAP_TAB *maptab, WN_MAP wn_map, WN *wn, INT64 thing)
voidIPA_WN_MAP_Get (WN_MAP_TAB *maptab, WN_MAP wn_map, const WN *wn)
INT32 IPA_WN_MAP32_Get (WN_MAP_TAB *maptab, WN_MAP wn_map, const WN *wn)
INT64 IPA_WN_MAP64_Get (WN_MAP_TAB *maptab, WN_MAP wn_map, const WN *wn)
void WN_MAP_Add_Free_List (WN_MAP_TAB *maptab, WN *wn)
void WN_MAP_Set_ID (WN_MAP_TAB *maptab, WN *wn)

Variables

WN_MAP_TABCurrent_Map_Tab


Define Documentation

#define IPA_WN_MAP32_Create ( maptab,
pool   )     WN_MAP_Do_Create((maptab), (pool), WN_MAP_KIND_INT32)

Definition at line 352 of file wn_map.h.

#define IPA_WN_MAP64_Create ( maptab,
pool   )     WN_MAP_Do_Create((maptab), (pool), WN_MAP_KIND_INT64)

Definition at line 354 of file wn_map.h.

#define IPA_WN_MAP_Create ( maptab,
pool   )     WN_MAP_Do_Create((maptab), (pool), WN_MAP_KIND_VOIDP)

Definition at line 350 of file wn_map.h.

Referenced by IPO_CLONE::New_Clone().

#define IPA_WN_MAP_Size ( maptab,
wn_map,
category   )     (maptab)->_map_size[(category)][(wn_map)]

Definition at line 426 of file wn_map.h.

#define WN_MAP32_Create ( pool   )     WN_MAP_Do_Create(Current_Map_Tab, (pool), WN_MAP_KIND_INT32)

#define WN_MAP32_Get ( wn_map,
wn   )     IPA_WN_MAP32_Get(Current_Map_Tab, (wn_map), (wn))

Definition at line 418 of file wn_map.h.

Referenced by ALIAS_CLASSIFICATION::Alias_class(), IP_ALIAS_CLASSIFICATION::Alias_class(), OPT_STAB::Allocate_mu_chi_and_virtual_var(), Atomic_Using_Critical(), BS_Replace_Load(), BS_Replace_Store(), Cache_L1_Has_Data(), Cache_L2_Has_Data(), PROMPF_INFO::Check_Traverse(), CFG::Conv_to_select(), Convert_Section_To_Pdo(), Copy_addr_expr(), ALIAS_CLASSIFICATION::Copy_alias_class(), Copy_alias_info(), Count_tree_size(), Count_tree_size_tuning(), Create_Alternate_Simple_Chain_Shackle(), Delete_Shackle_Prompf_Info(), Depgraph_Write(), dump_loops(), Dump_Shackle_Chain_Id_Map_Info(), ALIAS_MANAGER::Dup_tree_alias_id(), Duplicate_alias_info(), Enclosing_Do_Loop_Of_Chain(), ALIAS_MANAGER::Erase_ip_alias_class_if_invalid(), Extract_Stmts_With_Chain_Id(), FB_Sanity_Check(), Fission(), Fission_Statement(), FS_Array_Substitute(), FS_Substitute(), Fuse(), ARA_LOOP_INFO::Generate_Copyout_Loop(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), DU_MANAGER::Get_bb_id(), RVI::Get_bitpos(), Get_controlling_stmt(), RBI::Get_WN_Prop(), ALIAS_MANAGER::Homing_load(), ALIAS_MANAGER::Homing_store(), ALIAS_MANAGER::Id(), Insert_Lowered_Atomic(), Inter_Iteration_Cses_Loop(), IPL_get_callsite_id(), ir_b_write_tree(), ir_put_wn(), DU_MANAGER::Is_value_restored(), DSE::Live_wn(), LNO_Build_Do_Access(), LNO_Build_If_Access(), WB_BROWSER::Loops_Walk(), CFG::Lower_if_stmt(), Lower_Master(), LWN_Delete_From_Block(), LWN_Delete_Tree(), Mp_Extract_Parallel_Directives(), ALIAS_MANAGER::Note_invalid_ip_alias_class(), Parallelize_Doacross_Loop(), Perform_Gather_Scatter(), Post_loop_peeling(), Pre_loop_peeling(), Print_Prompf_Doacross_Log(), Print_Prompf_Msgs(), Print_Prompf_Nest_Log(), Print_Prompf_Parallel_Region_Log(), Print_Prompf_Preopt_Transaction_Log(), SUMMARIZE< program >::Process_cd_for_phi_node(), SUMMARIZE< program >::Process_chi_jump_function(), SUMMARIZE< program >::Process_control_dependence(), process_node(), Process_Pair(), WB_BROWSER::Promp_Map(), Prompf_Assign_Ids_Traverse(), Prompf_Assign_New_Ids_Traverse(), Prompf_Collect_Ids(), Prompf_Hoist_Messy_Bounds(), PROMPF_INFO::Prompf_Info_Traverse(), Prompf_Interchange(), Prompf_Mp_Version(), Prompf_Nested_Tile(), Prompf_Record_Eliminations(), Prompf_Tile(), Prompf_Tile_Split(), Prompf_Zero_Ids(), Raise_dowhile_stmt(), Raise_whiledo_stmt(), WB_BROWSER::Reduction_Node(), Remove_Unity_Trip_Loop(), RBI::Rgn_WN_Tag(), Scalar_Expansion_Tile(), Search_for_summary_stmt(), separate_loop_and_scalar_expand(), separate_loop_by_scc(), Shackle_Copy_Prompf_Id_Map_Info(), Shackle_Prompf_Map_Initialize(), Shackleable_Refs_From_Chain(), Simple_Chain_Shackle_Case(), sm(), SNL_Distribute(), SNL_GEN_2D_Regtile(), SNL_GEN_Protect_Nest_With_Conditionals(), SNL_GEN_U_Ctiling(), SNL_INV_Cache_Block(), SNL_INV_Scalar_Expand_Tile(), SNL_Peel_Iteration(), SNL_Regtile_Loop(), SNL_SPL_Split_Tile_Sets(), PF_LOOPNODE::Split_Loops(), this_node(), WB_BROWSER::This_Node(), Thread_Affinity_Lower(), Tile_Loop(), OPT_STAB::Transfer_alias_class_to_occ_and_aux(), DU_MANAGER::Verify_add_wn_to_map(), CFG::Verify_cfg(), DU_MANAGER::Verify_du_chains_in_tree(), vintr_fis_separate_loop_and_scalar_expand(), WB_Prompf_Map(), REDUCTION_MANAGER::Which_Reduction(), Wind_Down(), WN2C_End_Prompf_Construct(), WN2C_Prompf_Construct_End(), WN2C_Prompf_Construct_Start(), WN2C_Start_Prompf_Construct(), WN2C_Translate_Stmt_Sequence(), WN2F_block(), WN2F_End_Prompf_Construct(), WN2F_func_entry(), WN2F_Prompf_Construct_End(), WN2F_Prompf_Construct_Start(), WN2F_Start_Prompf_Construct(), WN_Copy_Frequency_Tree(), WN_copy_stmap(), WN_CopyMap(), Wn_flags(), and WN_parity().

#define WN_MAP32_Set ( wn_map,
wn,
thing   )     IPA_WN_MAP32_Set(Current_Map_Tab, (wn_map), (wn), (thing))

Definition at line 394 of file wn_map.h.

Referenced by REDUCTION_MANAGER::Add_Reduction(), Atomic_Using_Critical(), Cache_Location_Analysis(), Check_Reduction(), REDUCTION_MANAGER::Check_Store(), CFG::Conv_to_select(), Convert_Section_To_Pdo(), Copy_addr_expr(), ALIAS_CLASSIFICATION::Copy_alias_class(), Copy_alias_info(), Copy_Array(), Copy_Array_Section(), Create_Chains_Of_Scalars(), create_doloop_node(), Create_Simple_Shackle_Loops(), Create_Single_Region(), ALIAS_MANAGER::Dup_tree_alias_id(), Duplicate_alias_info(), ALIAS_MANAGER::Erase_ip_alias_class_if_invalid(), REDUCTION_MANAGER::Erase_Node(), ALIAS_CLASSIFICATION::Finalize_ac_map_wn(), IP_ALIAS_CLASSIFICATION::Finalize_ac_map_wn(), Fission_Statement(), Fuse(), ALIAS_MANAGER::Gen_alias_id(), Gen_exp_wn(), ARA_LOOP_INFO::Generate_Copyout_Loop(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Initialize_Shackle_Chain_Id_Map(), ir_b_write_tree(), lower_complex_maps(), Lower_Fetch_And_Op(), CFG::Lower_if_stmt(), lower_quad_maps(), LWN_Delete_From_Block(), LWN_Delete_Tree(), RVI::Map_bitpos(), Parallelize_Doacross_Loop(), Perform_Gather_Scatter(), Post_loop_peeling(), Pre_loop_peeling(), SUMMARIZE< program >::Process_callsite(), SUMMARIZE< program >::Process_cd_for_phi_node(), SUMMARIZE< program >::Process_control_dependence(), Process_Pair(), Prompf_Assign_Ids_Traverse(), Prompf_Assign_New_Ids_Traverse(), Prompf_Hoist_Messy_Bounds(), Prompf_Mp_Version(), Prompf_Nested_Tile(), Prompf_Record_Eliminations(), Prompf_Tile(), Prompf_Zero_Ids(), Remove_Unity_Trip_Loop(), Reset_cd_and_stmt(), Scalar_Expansion_Tile(), separate_loop_and_scalar_expand(), separate_loop_by_scc(), DU_MANAGER::Set_bb_id(), ANL_FUNC_ENTRY::Set_Construct_Id(), ALIAS_MANAGER::Set_homing_load(), ALIAS_MANAGER::Set_homing_store(), ALIAS_MANAGER::Set_id(), DSE::Set_live_wn(), Set_Up_Equivalence_Class(), DU_MANAGER::Set_value_restored(), RBI::Set_WN_Cur_Rgn(), Set_wn_flags(), Shackle_Copy_Prompf_Id_Map_Info(), Shackle_Prompf_Map_Initialize(), SNL_Distribute(), SNL_GEN_U_Ctiling(), SNL_INV_Cache_Block(), SNL_INV_Scalar_Expand_Tile(), Thread_Affinity_Lower(), Transform_Code(), REDUCTION_MANAGER::Unroll_Update_Rec(), DU_MANAGER::Verify_add_wn_to_map(), CFG::Verify_cfg(), vintr_fis_separate_loop_and_scalar_expand(), WN_Copy_Frequency_Tree(), WN_copy_stmap(), WN_CopyMap(), and WN_MAP_put().

#define WN_MAP64_Create ( pool   )     WN_MAP_Do_Create(Current_Map_Tab, (pool), WN_MAP_KIND_INT64)

Definition at line 347 of file wn_map.h.

#define WN_MAP64_Get ( wn_map,
wn   )     IPA_WN_MAP64_Get(Current_Map_Tab, (wn_map), (wn))

Definition at line 420 of file wn_map.h.

Referenced by ir_put_wn(), WN_copy_stmap(), and WN_CopyMap().

#define WN_MAP64_Set ( wn_map,
wn,
thing   )     IPA_WN_MAP64_Set(Current_Map_Tab, (wn_map), (wn), (thing))

Definition at line 396 of file wn_map.h.

Referenced by WN_copy_stmap(), WN_CopyMap(), and WN_MAP_put().

#define WN_MAP_AC_INTERNAL   3

#define WN_MAP_ALIAS_CLASS   4

#define WN_MAP_Create ( pool   )     WN_MAP_Do_Create(Current_Map_Tab, (pool), WN_MAP_KIND_VOIDP)

#define WN_MAP_Delete ( wn_map   )     IPA_WN_MAP_Delete(Current_Map_Tab, (wn_map))

Definition at line 369 of file wn_map.h.

Referenced by Analyse_Dependencies(), Anl_Fini(), Anl_Static_Analysis(), Cache_Analysis_End(), ALIAS_CLASSIFICATION::Classify_memops(), F90_Lower_Term(), Fiss_Gather_Inner_Loop(), Fission(), Fission_Inner_Loop(), Fission_Test(), Form_Loops(), Generate_Guard_Test(), HMB_Hoist_Messy_Bounds(), WN_MEMOP_ANNOT_MGR::Init(), Inter_Iteration_Cses(), IP_WRITE_pu_internal(), IPL_Finalize_Par_Code(), Lego_PU_Fini(), Lnoptimizer(), lower_bit_field_id(), MemCtr_Add(), Move_Adjacent(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), COMP_UNIT::Normalize_loop(), OMP_Prelower(), PDGCS_do_proc(), RVI::Perform_phase2(), Prefetch_Auto(), output_queue::push(), REGION_Finalize(), ALIAS_CLASSIFICATION::Release_resources(), shackle_if_finalize(), SHACKLE_Phase(), Simd_Analysis(), SUMMARIZE< program >::Summarize(), toplogical_reordering(), IPA_NODE::Un_Read_PU(), CFG::Verify_cfg(), CFG::Verify_tree(), DU_MANAGER::Verify_wn_in_tree(), Version_Loop(), Version_Region(), Vintrinsic_Fission(), W2C_Pop_PU(), W2F_Pop_PU(), Whirl2ops_Finalize(), WN_fini_flags(), Write_PU_Info(), ALIAS_MANAGER::~ALIAS_MANAGER(), CODEMAP::~CODEMAP(), DSE::~DSE(), DU_MANAGER::~DU_MANAGER(), EMITTER::~EMITTER(), EXC::~EXC(), GOTO_TABLE::~GOTO_TABLE(), GTABLE::~GTABLE(), OPT_PU_POINTS_TO_SUMMARIZER::~OPT_PU_POINTS_TO_SUMMARIZER(), OPT_STAB::~OPT_STAB(), REDUCTION_MANAGER::~REDUCTION_MANAGER(), RESTRICTED_MAP::~RESTRICTED_MAP(), RVI::~RVI(), WN_MEMOP_ANNOT_MGR::~WN_MEMOP_ANNOT_MGR(), and WN_Verifier::~WN_Verifier().

#define WN_MAP_DEPGRAPH   0

#define WN_MAP_FEEDBACK   2

#define WN_MAP_Get ( wn_map,
wn   )     IPA_WN_MAP_Get(Current_Map_Tab, (wn_map), (wn))

Definition at line 416 of file wn_map.h.

Referenced by _xcreate_simple_basic_shackle(), _xdependence_is_preserved(), _xis_legal_shackle(), _xis_simple_shackle_case(), _xtest_dependence_is_preserved(), WB_BROWSER::Access_Array(), PF_LG::Add_Group(), Add_Parent_If_Constraints(), PF_LG::Add_Ref(), PF_UGS::Add_Ref(), PF_LOOPNODE::Add_Ref(), LEGO_UGS::Add_Ref(), PF_BASE_ARRAY::Add_Ref(), WB_BROWSER::Ancestors(), Appropriate_Shackle_Size_Set(), ARA_REF::ARA_REF(), Augment_Simple_Basic_Shackle(), OPT_STAB::Black_box_defs(), OPT_STAB::Black_box_refs(), BS_Has_Varying_Access_Array_In_Region(), BS_Is_Linearized(), BS_Matching_Load(), ARRAY_REF::Build_Array(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), Cache_L1_Analysis(), Cache_L2_Analysis(), Can_Evaluate_Cost(), Can_Mem_Op_Be_Moved(), CG_DEP_Latency(), Check_Version_Map(), SUMMARIZE< program >::Classify_const_value(), SUMMARIZE< program >::Classify_indirect(), DU_MANAGER::Collect_BB_id(), Common_Shackling_Depth(), DEPV_COMPUTE::Compute(), LEGO_UGS::Compute_Offset(), EMITTER::Compute_use_def_expr(), EMITTER::Compute_use_def_stmt(), PF_UGS::ComputePFVec(), Convert_Do_Loops_Conditionals(), DEPV_COMPUTE::Copy_Bounds_To_Work(), Create_Alternate_Simple_Chain_Shackle(), Create_Shackle_If_Per_Stmt(), Create_Simple_Shackle_Loops(), Cross_Loop_Cache_Analysis(), DBX_WN_Map(), PF_LG::Distance_LR(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), DU_MANAGER::Du_Get_Use(), Dump_Shackle_Map_Info(), EMITTER::Duplicate_sr_cr_connections(), EC_Array_Portion_Calls(), EH_Generate_Range_List(), Equivalent_Load(), RESTRICTED_MAP::Erase_entry_if_invalid(), Execution_Cost(), fast_fuse_check_ok(), ALIAS_CLASSIFICATION::Finalize_ac_map_wn(), IP_ALIAS_CLASSIFICATION::Finalize_ac_map_wn(), Find_Average(), Find_Break_Point(), NORMALIZE_LOOP::Find_enclosing_parallel_region(), Find_Step(), Fission(), Fission_Test(), Fix_Up_Loop_Info(), Form_Loops(), Fuse(), Fuse_Test(), Gather_References_At_Deepest_Depth(), Gen_Implicit_Prefetches(), PF_LG::Gen_Pref_Node(), WN_MEMOP_ANNOT_MGR::Get_annot(), OPT_PU_POINTS_TO_SUMMARIZER::Get_bound_pt_sum(), Get_Call_Info(), RVI::Get_chi_list(), Get_Do_Loop_Info(), EXC::Get_es_link(), OPT_STAB::Get_generic_chi_list(), Get_If_Info(), PF_LOOPNODE::Get_LoopInfo(), OPT_STAB::Get_mem_chi_list(), OPT_STAB::Get_mem_mu_node(), RVI::Get_mu_list(), OPT_STAB::Get_occ(), Get_OP_From_WN(), get_original_wn(), GOTO_TABLE::Get_Parent(), GTABLE::Get_Parent(), ARRAY_LOWER_REF::Get_Ref_Loop(), PF_LG::Get_Ref_Version(), Get_Region_Info(), Get_RR_Map(), OPT_STAB::Get_stmt_chi_list(), OPT_STAB::Get_stmt_mu_list(), ARRAY_DIRECTED_GRAPH16::Get_Vertex(), ALIAS_CLASSIFICATION::Handle_assignment(), IP_ALIAS_CLASSIFICATION::Handle_assignment(), Handle_Sink_General_Case(), Handle_Sink_Promotion_Case(), Has_Call_Info(), Has_Complex_Access_Array(), Has_Execution_Cost(), Has_Stmt_Significant_Ref(), HMB_Find_Messy_Subscripts(), Hoist_Place(), inner_fission_2(), SYMBOL_TREE::Integer_Ref_Needs_Reg(), intrinsic_operand_kind(), Invariant_Red_Depth(), PAR_STAT::Invariant_Reduction(), IPA_LNO_Annotate_Array_Call(), IPA_LNO_Annotate_Execution_Cost(), IPA_LNO_Evaluate_Formal_Symbols(), IPA_LNO_Read_Formal(), IPL_Build_Do_Access(), IPL_Build_If_Access(), IPL_Print_One_Access(), ir_b_write_tree(), ir_put_wn(), Is_Bad_Array(), NORMALIZE_LOOP::Is_outermost_loop_in_parallel_region(), NORMALIZE_LOOP::Is_pdo_loop(), ARA_LOOP_INFO::Is_Privatizable(), Is_Ref_Significant_In_Stmt(), Is_Value_Restored(), WN_Verifier::Is_WHIRL_tree(), Lego_Simplify(), LEGO_UGS::LEGO_UGS(), Lego_Update_Skew_Count(), LNO_Annotate_Array_Call(), LNO_Build_Access(), LNO_Build_Do_Access(), LNO_Build_If_Access(), LNO_Print_One_Access(), Loop_Invariant_Access(), lower_bit_field_id(), PF_LG::LR_Compare(), make_prefetch_arcs(), Map_Memop_To_Prefetch(), Mark_Code(), Mark_Indexed_References(), Matching_Stores(), Max_Dep_Distance(), Maybe_Handle_Sink_Promotion_Case(), Memop_Variant(), Messy_Subscript(), MIR_Build_Loop_List_Array(), NSE_Annotate_Array_Call(), Parallelization_Process_Deps(), WB_BROWSER::Parent(), PF_LG::PF_LG(), PF_UGS::PF_UGS(), Post_Peel_Map_Refs(), Pre_Peel_Map_Refs(), PF_UGS::Print(), ARRAY_DIRECTED_GRAPH16::Print(), process_actual_array_node(), process_array_node(), Process_Load(), PF_LOOPNODE::Process_Loop(), process_loops(), DISTRIBUTION::Process_Memory(), Process_Store(), Recursively_Add_Array_Lin_Symbols(), Recursively_Add_Parent_If_Lin_Symbols(), Ref_Contains_Reuse_For_Loop(), PF_LG::Ref_In_LG(), REGION::REGION(), REGION_CS_NoEarlierSub_First(), REGION_get_rid(), Register_Name_To_Statement(), Remark_Depth(), Remove_Redundant_And_Inconsistent_If(), RESTRICTED_MAP::Restore_info(), RID_Create(), RR_Map_Refs(), DEPV_COMPUTE::Same_Permutation(), SCC_reorder(), Separate_And_Update(), ARA_REF::Set_Loop_Invariant(), DEPV_COMPUTE::Set_Step(), Shackle_Do_Depth_For_If(), Shackle_Info_For_Shackled_Arrays(), Shackle_Scalars_Do_Privatize(), Shackleable_Ifs_Surrounding_Stmt(), Shape_Mismatch_At_Formal(), Simd_Align_Analysis(), Simd_Handle_Negative_Coefficient(), simd_operand_kind(), Simd_Unroll_Statement(), Simple_Execution_Cost(), Stride_One_Level(), test_significance(), DU_MANAGER::Ud_Get_Def(), Unit_Stride_Reference(), Update_Nest_Depth_Traverse(), CODEMAP::Update_pref(), Variant_Array(), Varying_Load(), RESTRICTED_MAP::Verify_info(), CFG::Verify_wn(), Vintrinsic_Fission(), PF_LG::Volume(), W2CF_Get_Parent(), ARA_LOOP_INFO::Walk_If(), WBT_DOLOOP_STACK(), WN2C_iload(), WN2C_istore(), WN2C_Prefetch_Map(), WN2C_region(), WN2F_Append_Prefetch_Map(), WN2F_iload(), WN2F_istore(), WN2F_region(), WN_copy_stmap(), WN_CopyMap(), and WN_get_pf_pointer().

#define WN_MAP_Get_dont_copy ( wn_map   )     (Current_Map_Tab->_dont_copy[(wn_map)])

Definition at line 442 of file wn_map.h.

Referenced by IPA_WN_Move_Maps_PU().

#define WN_MAP_Get_Kind ( wn_map   )     (Current_Map_Tab->_kind[(wn_map)])

Definition at line 440 of file wn_map.h.

Referenced by ir_put_wn().

#define WN_MAP_MAX   32

#define WN_MAP_PREFETCH   1

#define WN_MAP_RESERVED   5

Definition at line 296 of file wn_map.h.

Referenced by IPA_WN_MAP_Status(), WN_MAP_Do_Create(), and WN_MAP_TAB_Create().

#define WN_MAP_Set ( wn_map,
wn,
thing   )     IPA_WN_MAP_Set(Current_Map_Tab, (wn_map), (wn), (thing))

Definition at line 392 of file wn_map.h.

Referenced by _xcreate_simple_basic_shackle(), OPT_STAB::Add_black_box_def(), OPT_STAB::Add_black_box_ref(), CFG::Add_one_region(), Add_Pragma_To_MP_Regions(), PF_LOOPNODE::Add_Ref(), RAIL::Add_region_around_loop(), ARRAY_DIRECTED_GRAPH16::Add_Vertex(), Augment_Simple_Basic_Shackle(), AWN_Binary(), IP_ALIAS_CLASSIFICATION::Classify_deref_of_expr(), ALIAS_CLASSIFICATION::Classify_deref_of_expr(), ALIAS_CLASSIFICATION::Classify_lhs_of_store(), IP_ALIAS_CLASSIFICATION::Classify_lhs_of_store(), ARRAY_DIRECTED_GRAPH16::Clear_Map_For_Vertex(), EMITTER::Connect_cr_wn(), Connect_cr_wn(), EMITTER::Connect_sr_wn(), Convert_Do_Loops_Conditionals(), WN_MEMOP_ANNOT_MGR::Copy_annot(), Create_Alternate_Simple_Chain_Shackle(), Create_Initialize_Loop(), Create_Shackle_If_Per_Stmt(), Create_Simple_Shackle_Loops(), Create_Single_Region(), Cross_Loop_Cache_Analysis(), ARRAY_DIRECTED_GRAPH16::Delete_Vertex(), DU_MANAGER::Du_Put_Use(), EC_Array_Portion_Calls(), OPT_STAB::Enter_occ_tab(), STMTREP::Enter_rhs(), ARRAY_DIRECTED_GRAPH16::Erase_Graph(), Extended_Lower_Bound(), Extended_Upper_Bound(), Fast_32_Div(), Fast_32_Rem(), Fission_Test(), Fix_Up_Loop_Info(), Form_Loops(), Form_Statement_Refs(), Gen_CheckNo_DART(), PF_LG::Gen_Pref_Node(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_If_Accesses(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Guard_A_Do(), Guard_Test_Redundant(), Handle_Sink_Promotion_Case(), HMB_Compound_Guard_Test(), HMB_Simple_Guard_Test(), Initialize_Pdo_Last_Local_Index(), IPL_Build_Access_Array(), WN_Verifier::Is_WHIRL_tree(), EXC::Link_wn_es(), LNO_Build_Access_Array(), RVI::Map_chi_list(), Map_Memop_To_Prefetch(), RVI::Map_mu_list(), RVI::Map_mu_node(), Mark_Code(), Maybe_Handle_Sink_Promotion_Case(), Mp_Layout_Lego_Layout(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), NORMALIZE_LOOP::Normalize_loop_stmt(), Parallelize_Doacross_Loop(), Post_loop_peeling(), Pre_loop_peeling(), RINIT::Process_region(), Processor_Update_Outer_Tile(), Read_Pragma_Thread_Affinity(), REGION_clone(), REGION_emit(), REGION_Initialize(), REGION_new_wn(), DU_MANAGER::Remove_Def_From_System(), RESTRICTED_MAP::Remove_info(), DU_MANAGER::Remove_Use_From_System(), Rewrite_Bounds(), RESTRICTED_MAP::Save_info(), SE_Guard_Tests(), Separate_And_Update(), WN_MEMOP_ANNOT_MGR::Set_annot(), OPT_PU_POINTS_TO_SUMMARIZER::Set_bound_pt_sum(), Set_Call_Info(), Set_Do_Loop_Info(), Set_OP_To_WN_Map(), set_original_wn(), GTABLE::Set_Parent(), GOTO_TABLE::Set_Parent(), Set_RR_Map(), ARRAY_DIRECTED_GRAPH16::Set_Wn(), Shackle_Scalars_Do_Privatize(), Simd_Finalize_Loops(), Simple_Chain_Shackle_Case(), SNL_GEN_2D_Regtile(), SNL_GEN_Protect_Nest_With_Conditionals(), SNL_Peel_Iteration(), PF_LOOPNODE::Split_Loops(), DU_MANAGER::Ud_Put_Def(), UT_Generate_Imperfect_If_Code(), CFG::Verify_wn(), Version_Loop(), Version_Region(), W2CF_Set_Parent(), WN_add_lno_info(), WN_copy_stmap(), WN_CopyMap(), WN_Create_Intrinsic(), WN_CreateCvtl(), WN_CreateExp1(), WN_CreateExp2(), WN_CreateExp3(), WN_CreateIload(), WN_CreateIstore(), WN_MAP_put(), WN_SimpCreateCvtl(), WN_SimpCreateDeposit(), WN_SimpCreateExp1(), WN_SimpCreateExp2(), WN_SimpCreateExp3(), WN_SimpCreateExtract(), and WN_Simplify_Tree().

#define WN_MAP_Set_dont_copy ( wn_map,
dont_copy   )     (Current_Map_Tab->_dont_copy[(wn_map)] = (dont_copy))

Definition at line 444 of file wn_map.h.

Referenced by lower_bit_field_id(), REGION_Initialize(), and RESTRICTED_MAP::RESTRICTED_MAP().

#define WN_MAP_Size ( wn_map,
category   )     IPA_WN_MAP_Size(Current_Map_Tab, (wn_map), (category))

Definition at line 424 of file wn_map.h.

 
#define WN_MAP_Status (  )     IPA_WN_MAP_Status(Current_Map_Tab)

Definition at line 361 of file wn_map.h.

Referenced by RVI::RVI().

#define WN_MAP_TAB_Last_ID ( maptab,
category   )     (maptab)->_last_map_id[(category)]

Definition at line 333 of file wn_map.h.

Referenced by fix_tree(), and IP_READ_fix_tree().

#define WN_MAP_UNDEFINED   (-1)


Typedef Documentation

typedef INT32 WN_MAP

Definition at line 282 of file wn_map.h.


Enumeration Type Documentation

Enumerator:
WN_MAP_KIND_VOIDP 
WN_MAP_KIND_INT32 
WN_MAP_KIND_INT64 

Definition at line 299 of file wn_map.h.


Function Documentation

INT32 IPA_WN_MAP32_Get ( WN_MAP_TAB maptab,
WN_MAP  wn_map,
const WN wn 
)

void IPA_WN_MAP32_Set ( WN_MAP_TAB maptab,
WN_MAP  wn_map,
WN wn,
INT32  thing 
)

INT64 IPA_WN_MAP64_Get ( WN_MAP_TAB maptab,
WN_MAP  wn_map,
const WN wn 
)

void IPA_WN_MAP64_Set ( WN_MAP_TAB maptab,
WN_MAP  wn_map,
WN wn,
INT64  thing 
)

void IPA_WN_MAP_Delete ( WN_MAP_TAB maptab,
WN_MAP  wn_map 
)

void* IPA_WN_MAP_Get ( WN_MAP_TAB maptab,
WN_MAP  wn_map,
const WN wn 
)

void IPA_WN_MAP_Set ( WN_MAP_TAB maptab,
WN_MAP  wn_map,
WN wn,
void thing 
)

WN_MAP_ID IPA_WN_MAP_Status ( WN_MAP_TAB maptab  ) 

Definition at line 267 of file wn_map.cxx.

References wn_map_tab::_is_used, Is_True, WN_MAP_MAX, and WN_MAP_RESERVED.

void WN_MAP_Add_Free_List ( WN_MAP_TAB maptab,
WN wn 
)

WN_MAP WN_MAP_Do_Create ( WN_MAP_TAB maptab,
struct mem_pool pool,
WN_MAP_KIND  kind 
)

void WN_MAP_Set_ID ( WN_MAP_TAB maptab,
WN wn 
)

WN_MAP_TAB* WN_MAP_TAB_Create ( struct mem_pool pool  ) 

void WN_MAP_TAB_Delete ( WN_MAP_TAB maptab  ) 


Variable Documentation

Mapping mechanism for tree nodes --------------------------------

Description:

This module implements the mapping mechanism. Its interface is described in wn_map.h

Implementation Description The interface/external behavior of the mapping routines is described in wn_map.h. Here we describe the implementation.

The set of possible opcodes is partitioned into categories. We provide a separate mapping mechanism for each category, although this is transparent to the user. When the user creates a mapping, no memory is allocated. We instead use a lazy model that allocates space when the user first sets the value for a node. Thus, while the same mapping can be used by opcodes in different categories, space is only reserved for those categores that have opcodes which are set. As an example, the user may create a data dependence mapping. If he only sets the mappings for loads and stores, memory will only be allocated for all the load/store nodes.

Each wn_map has a WN_MAP_KIND flag to indicate what kind of values it holds. They may be void*, INT32, or INT64 values.

Every WN contains a map_id. This map_id is unique among all nodes of the same category in one PU. Two nodes of different categories or in different PUs may share the same map_id. Every node has its map_id initialized to -1. A node only gets a valid map_id when it is assigned a value for one of the maps. This allows us to avoid wasting map_id space on nodes that are never mapped.

To save space, we retain a free list of map_ids. When a WN is deleted, the WN_MAP_Add_Free_List method is called automatically to add the map_id to the free list. If we later need a new map_id, we can just grab a value off the free list.

Definition at line 104 of file wn_map.cxx.

Referenced by IP_ALIAS_CLASSIFICATION::Classify_memops(), Create_MicroTask(), Delete_Call(), DRA_Add_Clone(), fix_tree(), Gen_MP_SingleProcess_Region(), Inline_callees_into_caller(), Inliner_Write_PUs(), Insert_Labels(), IP_READ_fix_tree(), IP_READ_get_tree(), IP_READ_pu(), IPA_NODE_CONTEXT::IPA_NODE_CONTEXT(), IPO_Copy_Tree(), IPO_INLINE::IPO_INLINE(), IPO_Modify_WN_for_field_reorder(), ir_put_wn(), Lower_Master(), lower_mp(), LWN_Delete_Tree(), PDGCS_initialize(), PDGCS_new_proc(), IPO_INLINE::Post_Process_Caller(), Postprocess_PU(), Preprocess_PU(), SUMMARIZE< program >::Process_callsite(), SUMMARIZE< program >::Process_control_dependence(), Process_Parallel_Do(), Process_Parallel_Region(), Process_PDO(), Read_Local_Info(), IPA_NODE::Read_PU(), Reset_param_list(), Save_And_Restore_Stack(), Set_Tables(), Strip_Nested_MP(), Transform_Parallel_Block(), WFE_Assemble_Asm(), WFE_Finish_Function(), WFE_Start_Function(), WGEN_Assemble_Asm(), WGEN_Finish_Function(), WGEN_Start_Function(), WN_copy_stmap(), WN_CopyMap(), WN_get_tree(), WN_Map_Valid(), Write_inline_pu(), Write_PU_Info(), and IPA_NODE_CONTEXT::~IPA_NODE_CONTEXT().


Generated on Wed Apr 8 14:40:25 2009 for Open64 by  doxygen 1.5.6