#include <vector>#include <set>#include <stdlib.h>#include <stdio.h>#include "bb.h"#include "defs.h"#include "mempool.h"#include "error.h"#include "bb_set.h"#include "region.h"#include "cgtarget.h"#include "if_conv.h"#include "timing.h"#include "tracing.h"#include "cg.h"#include "profile_util.h"#include "region_bb_util.h"#include "ti_res_count.h"#include "ti_latency.h"#include "ipfec_defs.h"#include "cg_dep_graph.h"#include "dominate.h"#include "vt_region.h"#include "recovery.h"#include <math.h>#include "whirl2ops.h"#include "tlog.h"#include "glob.h"#include "ipfec_options.h"#include "be_util.h"#include "freq.h"#include "op.h"

Go to the source code of this file.
| #define COMP_TOP_NUM 32 |
| #define MAX_NUM_PARA_CMP 2 |
| #define PARA_COMP_TYPE_NUM 6 |
Definition at line 682 of file dominate.cxx.
References BB_dom_set, BB_id, BB_pdom_set, BB_preds, BB_succs, BBLIST_item, BBLIST_next, BOOL, BS_ClearD(), BS_CopyD(), BS_Create_Empty(), BS_EqualP(), BS_IntersectionR(), BS_Union1D(), BS_UnionD(), CFLOW_Trace_Dom, changed, FALSE, first_time, Get_Trace(), i, INT, MEM_local_pool, MEM_POOL_Pop, MEM_POOL_Push, NULL, PU_BB_Count, Set_BB_dom_set(), Set_BB_pdom_set(), TP_FLOWOPT, TRUE, and Vector_Print_Dominators().
Referenced by Calculate_Control_Dependences().
Definition at line 304 of file dominate.cxx.
References BB_dom_set, BB_id, BB_ID_POST_EXIT, BB_ID_PRE_ENTRY, BB_next, BB_pdom_set, BB_preds, BB_prev, BB_succs, BBLIST_item, BBLIST_next, BBvec, BOOL, BS_Choose(), BS_CHOOSE_FAILURE, BS_Choose_Next(), BS_CopyD(), BS_Create(), BS_Create_Empty(), BS_Difference1D(), BS_EqualP(), BS_IntersectionR(), BS_Union1D(), BS_UnionR(), CFLOW_Trace_Dom, changed, check, dominators::dom_set, FALSE, Get_Trace(), i, Init_BB_Dom_Info(), INT, last_bb, MEM_local_nz_pool, MEM_POOL_Initialize, MEM_POOL_Pop, MEM_POOL_Push, MEM_POOL_Push_Freeze, NULL, dominators::pdom_set, pool_inited, Print_Dominators(), PU_BB_Count, REGION_First_BB, dominators::size, src, Start_Timer(), Stop_Timer(), T_CalcDom_CU, TP_FLOWOPT, TRUE, and TYPE_MEM_POOL_ALLOC_N.
Referenced by Add_Scheduling_Notes_For_Loops(), Calculate_Dominator_Info(), CG_Generate_Code(), Create_GRA_BBs_And_Regions(), FREQ_Find_Never_BBs(), GCM_Schedule_Region(), HB_Form_HB_List(), HB_Form_Hyperblocks(), HB_Identify_Candidates_Init(), IF_CONVERTOR::IF_CONVERTOR(), Initialize_Compute_BB_Frequencies(), Perform_Global_Schedule(), Perform_Loop_Invariant_Code_Motion(), Perform_Loop_Optimizations(), and PRDB_GEN::PRDB_GEN().
Definition at line 4049 of file cgtarget.cxx.
References CGTARG_Unconditional_Compare_Helper(), FALSE, and OP_code.
| COMPARE_TYPE Compare_Type | ( | TOP | opcode | ) |
Definition at line 279 of file prdb.cxx.
References COMPARE_TYPE_and, COMPARE_TYPE_and_orcm, COMPARE_TYPE_andcm, COMPARE_TYPE_normal, COMPARE_TYPE_or, COMPARE_TYPE_or_andcm, COMPARE_TYPE_orcm, COMPARE_TYPE_unc, Is_True, and TRUE.
Referenced by PARTITION_GRAPH::Copy_To(), PARTITION_GRAPH::Delete(), PARTITION_GRAPH::Is_Disjoint(), Is_Para_Comp_May_Def(), PARTITION_GRAPH::Look_For_Partition(), IF_CONVERTOR::Suitable_For_If_Conv(), and PARTITION_GRAPH::Update().
Definition at line 3756 of file expand.cxx.
References Build_OP(), COMPARE_TYPE_and, COMPARE_TYPE_or, FALSE, FmtAssert, TOP, and Zero_TN.
Definition at line 58 of file exp_predicate.cxx.
References Alloc_Result_TNs(), Build_OP(), Expand_Mtype_Immediate_Into_Register(), FALSE, FmtAssert, Gen_Literal_TN(), Is_True, MTYPE_I4, opc, top, TOP, True_TN, and Zero_TN.
Definition at line 3887 of file expand.cxx.
References BB_branch_op(), BB_id, BB_Insert_Ops(), BB_Insert_Ops_Before(), BOOL, Build_OP(), CGTARG_Analyze_Branch(), CGTARG_Get_unc_Variant(), DevWarn, Exp_Pred_Complement(), FALSE, FmtAssert, FOR_ALL_BB_OPs_REV, Gen_Literal_TN(), Gen_Predicate_TN(), Gen_Register_TN(), Is_True, last_false_tn, NULL, OP_ALWAYS_UNC_DEF, OP_Change_Opcode(), OP_code, OP_cond_def(), OP_opnd, OP_result, OP_results, OPS_EMPTY, OPS_Init(), Set_OP_cond_def_kind, TN_Reaching_Value_At_Op(), TRUE, True_TN, V_BR_P_TRUE, VAL_KNOWN, and Zero_TN.
Definition at line 270 of file if_conv.cxx.
References BB_branch_op(), BB_Insert_Op(), BB_succs_len(), BOOL, br, FALSE, Gen_Predicate_TN(), Is_True, Mk_OP(), NULL, OP_code, OP_Defs_TN(), OP_opnd, OP_PREDICATE_OPND, OP_prev, OP_Refs_TN(), OP_result, OP_results, OP_srcpos, TN_Defined_At_Op(), TRUE, True_TN, and Zero_TN.
Referenced by CNTL_DEP::CNTL_DEP(), IF_CONVERTOR::Gen_Para_Comp(), IF_CONVERTOR::Insert_Predicate(), IF_CONVERTOR::Merge_Area(), and Predicate_Of_Succ().
Referenced by KEY_SCH::Assign_Register(), Check_If_TN_Is_Global(), PARTITION_GRAPH::Collect_Info(), dump_tn(), Fixup_Rotating_Register_TN(), SWP_REG_ASSIGNMENT::Get_Control_Predicate(), IF_CONVERTOR::Insert_Predicate(), Lookup_Register_TN(), KEY_SCH::New_live_in_tn(), SWP_ALLOCATOR::print(), IF_CONV_AREA::Print(), PARTITION_GRAPH_NODE::Print(), Print_TN_List(), IF_CONVERTOR::Record_Para_Comp_Info(), and Test_PRDB().
Definition at line 813 of file dominate.cxx.
References FALSE, MEM_POOL_Delete(), MEM_POOL_Pop_Unfreeze, pool_inited, and dominators::size.
Referenced by Add_Scheduling_Notes_For_Loops(), CG_Generate_Code(), Finalize_Compute_BB_Frequencies(), Finalize_Memory(), Free_Dominator_Info_Memory(), FREQ_Find_Never_BBs(), GCM_Schedule_Region(), HB_Form_HB_List(), HB_Form_Hyperblocks(), IF_CONVERTOR::IF_CONVERTOR(), Perform_Loop_Invariant_Code_Motion(), Perform_Loop_Optimizations(), and PRDB_GEN::PRDB_GEN().
| BOOL FREQ_Match | ( | float | f1, | |
| float | f2 | |||
| ) | [inline] |
Definition at line 129 of file freq.h.
References is::ratio, and TRUE.
Referenced by CG_LOOP::Attach_Prolog_And_Epilog(), Change_Succ(), Change_Succ_Prob(), Collapse_Empty_Goto(), Collapse_Same_Logif(), Convert_Goto_To_If(), Convert_Goto_To_Return(), Freq_OK(), Freq_sum_ok(), FREQ_Verify(), IF_CONVERTOR::Prob_Of_Area(), Prob_OK(), Prob_sum_ok(), Unroll_Dowhile_Loop(), and unroll_multi_bb().
Definition at line 1964 of file gra_live.cxx.
References GRA_LIVE_Compute_Local_Info(), GRA_LIVE_Region_Compute_Global_Live_Info(), GRA_LIVE_Region_Entry(), GRA_LIVE_Region_Exit(), and GRA_LIVE_Region_Start().
Referenced by CG_LOOP::Attach_Prolog_And_Epilog(), CG_LOOP_Coalesce_Backedges(), REGIONAL_CFG::Duplicate(), REGION::Edge_Splitting(), Fixup_Arcs(), REGIONAL_CFG::Fixup_Arcs(), Generate_Hot_Cold_Jump(), Insert_Goto_BB(), Make_Fall_Thru_Goto(), IF_CONVERTOR::Merge_Area(), and Perform_Post_GCM_Steps().
Definition at line 148 of file if_conv.cxx.
Referenced by REGION_INFO_MGR::Acquire_Rgn_Info(), Calculate_Dominator_Info(), and Is_In_Abnormal_Loop().
Definition at line 214 of file prdb.cxx.
Referenced by PARTITION_GRAPH::Collect_Info(), and IF_CONVERTOR::IF_CONVERTOR().
Definition at line 113 of file if_conv.cxx.
References FALSE, LOOP, Parent, and TRUE.
Referenced by Calculate_Dominator_Info(), PARTITION_GRAPH::Collect_Info(), IF_CONVERTOR::Force_If_Convert(), and IF_CONVERTOR::IF_CONVERTOR().
Definition at line 104 of file if_conv.cxx.
References Compare_Type(), COMPARE_TYPE_normal, COMPARE_TYPE_unc, and OP_code.
Referenced by Predicate_Block().
Definition at line 826 of file hb_if_convert.cxx.
References AND_Predicate_To_OP(), BB_first_op, BB_id, BB_Insert_Ops_Before(), BB_Remove_Op(), BOOL, Build_OP(), Build_TN_Like(), CGTARG_Get_unc_Variant(), CGTARG_Predicate_OP(), DevWarn, Eager_Level, EAGER_MEMORY, FALSE, FmtAssert, fprintf(), Gen_Literal_TN(), GRA_LIVE_TN_Live_Outof_BB(), HB_exclude_pgtns, HB_Trace(), HB_TRACE_CONVERT, i, INT, Is_Para_Comp_May_Def(), op::next, NULL, OP_ALWAYS_COND_DEF, OP_ALWAYS_UNC_DEF, OP_Change_Opcode(), OP_Change_To_Noop(), OP_code, OP_cond_def(), OP_has_predicate, OP_icmp, OP_load, OP_next, OP_opnd, OP_opnds, OP_PREDICATE_OPND, OP_result, OP_results, OP_store, op::opr, OPS_Init(), OPS_last, PQSCG_is_disjoint(), PQSCG_is_subset_of(), Print_OP_No_SrcLine(), Set_OP_cond_def_kind, Set_OP_opnd, TFile, TN_is_const_reg(), TN_is_dedicated, TN_is_fcc_register(), TN_is_float, TN_is_global_reg, TN_is_register, TN_is_true_pred, TN_number, TN_register_class, TN_size, top, TOP, TRUE, True_TN, and Zero_TN.
Referenced by Make_Fall_Thru_Goto(), IF_CONVERTOR::Merge_Area(), and Remove_Branches().
| TN* Predicate_Of_Succ | ( | BB * | bb, | |
| BB * | succ, | |||
| BB * | fall_thru, | |||
| BB_PREDICATE_INFO * | info | |||
| ) |
Definition at line 2898 of file if_conv.cxx.
References BB_branch_op(), BB_succs_len(), br, Find_BB_Predicates(), Is_True, NULL, OP_opnd, and OP_PREDICATE_OPND.
Referenced by IF_CONVERTOR::Insert_Predicate().
Definition at line 1227 of file bbutil.cxx.
References ANNOT_ENTRYINFO, ANNOT_entryinfo, ANNOT_Get(), BB_annotations, BB_call, BB_entry, BB_exit, BB_first_op, BB_id, BBLIST_item, bl, ENTRYINFO_name, FALSE, FOR_ALL_BB_PREDS, FOR_ALL_BB_SUCCS, fprintf(), FREQ_Print_BB_Note(), NOTE_BB_Act(), NOTE_PRINT_TO_FILE, Print_BB_Header(), Print_BB_Pragmas(), Print_OPs(), SBar, ST_name, TFile, and TRUE.
Definition at line 978 of file oputil.cxx.
Definition at line 222 of file if_conv.cxx.
References FmtAssert, Is_OP_Cond(), NULL, OP_Defs_TN(), OP_has_predicate, OP_opnd, OP_PREDICATE_OPND, OP_prev, p1, p2, REGISTER_UNDEFINED, and TN_register.
Referenced by IF_CONVERTOR::Detect_Para_Comp(), Find_BB_Predicates(), IF_CONVERTOR::Gen_Para_Comp(), IF_CONVERTOR::Is_Partial_Redundant_Def(), and IF_CONVERTOR::Suitable_For_If_Conv().
| TOP cmp_top_index[COMP_TOP_NUM] |
Initial value:
{ TOP_cmp_ne, TOP_cmp_ne_unc,
TOP_cmp4_ne, TOP_cmp4_ne_unc,
TOP_cmp_i_ne, TOP_cmp_i_ne_unc,
TOP_cmp4_i_ne, TOP_cmp4_i_ne_unc,
TOP_cmp4_ge, TOP_cmp4_ge_unc,
TOP_cmp4_gt, TOP_cmp4_gt_unc,
TOP_cmp4_le, TOP_cmp4_le_unc,
TOP_cmp4_lt, TOP_cmp4_lt_unc,
TOP_cmp_ge, TOP_cmp_ge_unc,
TOP_cmp_gt, TOP_cmp_gt_unc,
TOP_cmp_le, TOP_cmp_le_unc,
TOP_cmp_lt, TOP_cmp_lt_unc,
TOP_cmp4_i_eq, TOP_cmp4_i_eq_unc,
TOP_cmp4_eq, TOP_cmp4_eq_unc,
TOP_cmp_i_eq, TOP_cmp_i_eq_unc,
TOP_cmp_eq, TOP_cmp_eq_unc
}
Definition at line 2566 of file if_conv.cxx.
Referenced by IF_CONVERTOR::Get_Para_Comp_Top().
| hTN_MAPf frequency_of_predicates = 0 |
Definition at line 98 of file if_conv.cxx.
Referenced by PARTITION_GRAPH::Get_Probability(), IF_CONVERTOR::IF_CONVERTOR(), and IF_CONVERTOR::Merge_Area().
Definition at line 99 of file if_conv.cxx.
| hTN_MAP init_op_info = 0 |
Definition at line 100 of file if_conv.cxx.
| TOP para_comp_top[COMP_TOP_NUM][PARA_COMP_TYPE_NUM] |
1.5.6