#include <opt_cfg.h>

Definition at line 159 of file opt_cfg.h.
enum CFG::END_BLOCK [private] |
| CFG::CFG | ( | const CFG & | ) | [private] |
| CFG::CFG | ( | void | ) | [private] |
Definition at line 99 of file opt_cfg.cxx.
References _agoto_pred_vec, _agoto_succ_vec, _bb_set, _bb_vec, _calls_break, _cur_loop_depth, _current_bb, _dfs_vec, _dfs_vec_sz, _dohead_cnt, _dpo_vec, _dpo_vec_sz, _entry_bb, _entry_vec, _exc, _exit_bb, _exit_vec, _fake_entry_bb, _fake_exit_bb, _feedback, _first_bb, _first_bb_id, _has_regions, _label_map, _last_bb, _last_bb_id, _last_label_num, _loc_pool, _loops, _loops_valid, _lower_fully, _mem_pool, _non_true_body_set, _notreach_vec, _orig_last_label, _pdo_vec, _pdo_vec_sz, _po_vec, _po_vec_sz, _rgn_level, _rid, _rvi_break_stmt, _trace, DYN_ARRAY< T >::Alloc_array(), CFG_ALTENTRY_TAB_SIZE, CFG_BB_TAB_SIZE, CFG_DUMP_FLAG, CFG_EARLYEXIT_TAB_SIZE, CFG_LAB_HASH_SIZE, CXX_NEW, FALSE, Get_Trace(), MAP, DYN_ARRAY< T >::Newidx(), NULL, RL_UNKNOWN, TP_GLOBOPT, TRUE, and WN_Simplifier_Enable().
| CFG::~CFG | ( | void | ) |
Definition at line 158 of file opt_cfg.cxx.
References _agoto_pred_vec, _agoto_succ_vec, _bb_vec, _entry_vec, _exit_vec, _notreach_vec, and DYN_ARRAY< T >::Free_array().
| CFG& CFG::operator= | ( | const CFG & | ) | [private] |
Definition at line 227 of file opt_cfg.h.
References _mem_pool, BB_NODE::Append_pred(), BB_NODE::Append_succ(), BB_LIST::Contains(), Is_True, BB_NODE::Pred(), and BB_NODE::Succ().
Referenced by Add_one_compgoto_stmt(), Add_one_if_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_stmt(), Connect_after(), Connect_agotos(), Create_conditional(), OPT_TAIL::Fixup_exit(), LMV_clone_pred_succ_relationship(), LMV_gen_precondioning_stuff(), Lower_do_loop(), Lower_do_while(), Lower_if_stmt(), Lower_while_do(), New_bb(), Process_entry(), Process_multi_entryexit(), and Split_bb_with_wns().
Definition at line 236 of file opt_cfg.h.
References _mem_pool, BB_NODE::Remove_pred(), and BB_NODE::Remove_succ().
Referenced by OPT_TAIL::Fixup_exit(), and Split_bb_with_wns().
Definition at line 240 of file opt_cfg.h.
References Connect_predsucc(), and CHAIN_NODE::Insert_After().
Definition at line 244 of file opt_cfg.h.
References BB_NODE::Set_firststmt(), and BB_NODE::Set_laststmt().
Referenced by Append_wn_in(), Create_label_stmt(), and Prepend_wn_in().
Definition at line 248 of file opt_cfg.h.
References _bb_vec, _last_bb_id, and DYN_ARRAY< T >::Newidx().
Referenced by Append_bb(), Create_and_allocate_bb(), and Split_bb_with_wns().
Definition at line 176 of file opt_cfg.cxx.
References _current_bb, Append_bb(), Connect_predsucc(), Create_bb(), Inside_mp_do(), and BB_NODE::Set_MP_region().
Referenced by Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_if_stmt(), Add_one_region(), Add_one_stmt(), Add_one_while_do_stmt(), Create_empty_preheader(), Create_loopbody(), Lower_if_stmt(), Process_entry(), and Process_multi_entryexit().
Definition at line 254 of file opt_cfg.h.
References _mem_pool, BB_NODE, CXX_NEW, BB_NODE::Set_kind(), and tmp.
Referenced by Add_one_compgoto_stmt(), Add_one_do_loop_stmt(), Add_one_if_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_stmt(), Add_one_while_do_stmt(), Create(), Create_and_allocate_bb(), Create_labelled_bb(), Lower_if_stmt(), and New_bb().
Definition at line 261 of file opt_cfg.h.
References _bb_vec, _current_bb, _last_bb, Alloc_bb_id(), BB_NODE::Id(), CHAIN_NODE::Insert_After(), NULL, and BB_NODE::Set_id().
Referenced by Add_one_do_loop_stmt(), Add_one_if_stmt(), Add_one_stmt(), Add_one_while_do_stmt(), Create(), Create_conditional(), Create_loopbody(), Lower_do_loop(), Lower_do_while(), Lower_if_stmt(), Lower_while_do(), and New_bb().
Definition at line 3683 of file opt_cfg.cxx.
References _notreach_vec, Add_notreach(), BB_GOTO, DYN_ARRAY< T >::Bzero_array(), Change_block_kind(), OPT_FEEDBACK::Delete_edge(), Fake_entry_bb(), Feedback(), Find_not_reached(), FOR_ALL_NODE, BB_NODE::Id(), Init, Is_Trace, BB_NODE::Kind_name(), BB_LIST::Node(), BB_NODE::Pred(), BB_NODE::Reached(), Removable_bb(), Remove_path(), DYN_ARRAY< T >::Resetidx(), BB_NODE::Set_succ(), BB_NODE::Succ(), TFile, and Trace().
Referenced by Process_multi_entryexit().
Definition at line 3648 of file opt_cfg.cxx.
References BB_DFORDER, BB_REACHED, BB_NODE::Dforder(), FOR_ALL_ELEM, BB_NODE::Id(), Init, Is_Trace, BB_NODE::Set_flag(), BB_NODE::Succ(), TFile, and Trace().
Referenced by Find_not_reached().
Definition at line 4035 of file opt_cfg.cxx.
References _entry_bb, _exit_vec, Add_earlyexit(), BB_EXIT, BB_REGIONEXIT, BB_REGIONSTART, DYN_ARRAY< T >::Bzero_array(), Fake_entry_bb(), Fake_exit_bb(), FALSE, FOR_ALL_ELEM, Init, INT32, Is_True, BB_NODE::Kind(), STMTREP::Label_number(), BB_NODE::Last_stmtrep(), BB_NODE::Laststmt(), SLIST_NODE::Len(), STMTREP::Op(), OPC_REGION_EXIT, BB_REGION::Region_exit_list(), REGION_scan_exits(), BB_NODE::Regioninfo(), DYN_ARRAY< T >::Resetidx(), BB_REGION::Rid(), RID_TYPE_mp, BB_NODE::Set_pred(), BB_NODE::Succ(), WN_label_number(), and WN_opcode().
Referenced by Process_multi_entryexit().
| void CFG::Find_no_exit_blocks | ( | BB_NODE * | bb, | |
| BB_NODE_SET * | instack | |||
| ) | [private] |
Definition at line 3950 of file opt_cfg.cxx.
References Add_earlyexit(), BB_NODE::Dforder(), BB_NODE_SET::Difference1D(), Fake_exit_bb(), FOR_ALL_ELEM, Init, INT, BB_NODE_SET::MemberP(), BB_NODE::Set_dforder(), BB_NODE::Succ(), BB_NODE_SET::Union1D(), and BB_NODE::Willexit().
Referenced by Process_no_exit().
Definition at line 3995 of file opt_cfg.cxx.
References _entry_vec, _exit_vec, BBNS_EMPTY, Bkwd_prop_exit(), Fake_entry_bb(), Find_no_exit_blocks(), FOR_ALL_NODE, i, Init, instack, INT, DYN_ARRAY< T >::Lastidx(), Loc_pool(), BB_NODE::Reset_dforder(), BB_NODE::Reset_visit(), BB_NODE::Reset_willexit(), and Total_bb_count().
Referenced by Process_multi_entryexit().
Definition at line 3982 of file opt_cfg.cxx.
References BB_DFORDER, BB_WILLEXIT, BB_NODE::Dforder(), FOR_ALL_ELEM, Init, BB_NODE::Pred(), and BB_NODE::Set_flag().
Referenced by Process_no_exit().
Definition at line 291 of file opt_cfg.h.
References _entry_vec, and DYN_ARRAY< T >::Newidx().
Referenced by Create(), and Process_entry().
Definition at line 294 of file opt_cfg.h.
References _exit_vec, and DYN_ARRAY< T >::Newidx().
Referenced by Find_exit_blocks(), and Find_no_exit_blocks().
Definition at line 297 of file opt_cfg.h.
References _notreach_vec, BB_NODE::Init_stmt(), DYN_ARRAY< T >::Newidx(), and NULL.
Referenced by Process_not_reached().
Definition at line 5533 of file opt_cfg.cxx.
References FALSE, FmtAssert, i, INT32, OPC_BLOCK, TRUE, WN_first(), WN_kid(), WN_kid_count(), WN_MAP_Get, WN_MAP_Set, WN_next(), WN_opcode(), and WOPT_Enable_Verify.
Referenced by Verify_tree().
Definition at line 4266 of file opt_cfg.cxx.
References _dfs_vec, _dfs_vec_sz, _fake_entry_bb, _fake_exit_bb, _po_vec, _po_vec_sz, BB_NODE::Dforder(), FOR_ALL_ELEM, Init, BB_NODE::Set_dforder(), and BB_NODE::Succ().
Referenced by Dfs_vec().
Definition at line 4342 of file opt_cfg.cxx.
References _dpo_vec, BB_NODE::Dom_bbs(), BB_NODE::Dom_dfs_id(), FOR_ALL_ELEM, Init, and Is_True.
Referenced by Dpo_vec().
Definition at line 4358 of file opt_cfg.cxx.
References _pdo_vec, FOR_ALL_ELEM, Init, Is_True, BB_NODE::Pdom_bbs(), and BB_NODE::Pdom_dfs_id().
Referenced by Pdo_vec().
Definition at line 893 of file opt_cfg.cxx.
References _current_bb, BB_NODE::Firststmt(), New_bb(), BB_NODE::Set_linenum(), TRUE, and WN_Get_Linenum().
Referenced by Add_one_stmt().
Definition at line 905 of file opt_cfg.cxx.
References _current_bb, _mem_pool, Add_one_stmt(), Append_bb(), BB_DOEND, BB_DOHEAD, BB_DOTAIL, body_bb, Connect_predsucc(), Create_conditional(), Create_labelled_bb(), Create_loop_info(), Create_loopbody(), Cur_loop_depth(), Cur_PU_Feedback, CXX_NEW, END_NOT, FALSE, FEEDBACK::FB_clone_loop_test(), FEEDBACK::FB_lower_loop(), FmtAssert, Is_True, LOOP_DO, Lower_fully(), Set_cur_loop_depth(), BB_LOOP::Set_flag(), BB_LOOP::Set_has_entry_guard(), BB_NODE::Set_kind(), BB_NODE::Set_loop(), TRUE, WN_copy(), WN_copy_stmap(), WN_do_body, WN_do_loop_info, WN_end, WN_index, WN_Loop_Nz_Trip, WN_start, and WN_step.
Referenced by Add_one_stmt().
Definition at line 1111 of file opt_cfg.cxx.
References _current_bb, _mem_pool, Append_bb(), BB_DOHEAD, BB_DOTAIL, BB_REPEATEND, body_bb, Connect_predsucc(), Create_blank_loop_info(), Create_conditional(), Create_label_stmt(), Create_labelled_bb(), Create_loopbody(), Cur_loop_depth(), Cur_PU_Feedback, CXX_NEW, END_NOT, FEEDBACK::FB_lower_loop(), BB_NODE::Firststmt(), Is_True, LOOP_REPEAT, Lower_fully(), Set_cur_loop_depth(), BB_LOOP::Set_flag(), BB_NODE::Set_kind(), BB_NODE::Set_linenum(), BB_NODE::Set_loop(), TRUE, WN_Get_Linenum(), WN_while_body, and WN_while_test.
Referenced by Add_one_stmt().
Definition at line 1015 of file opt_cfg.cxx.
References _mem_pool, Append_bb(), BB_DOHEAD, BB_DOTAIL, BB_WHILEEND, body_bb, Connect_predsucc(), Create_blank_loop_info(), Create_conditional(), Create_labelled_bb(), Create_loopbody(), Cur_loop_depth(), Cur_PU_Feedback, CXX_NEW, END_NOT, FALSE, FEEDBACK::FB_clone_loop_test(), FEEDBACK::FB_lower_loop(), Is_True, LOOP_WHILE, Lower_fully(), Set_cur_loop_depth(), BB_LOOP::Set_flag(), BB_NODE::Set_kind(), BB_NODE::Set_loop(), TRUE, WN_copy(), WN_copy_stmap(), WN_while_body, and WN_while_test.
Referenced by Add_one_stmt().
Definition at line 1191 of file opt_cfg.cxx.
References _opt_stab, INT, OPT_STAB::Is_volatile(), MTYPE_is_integral, mult, OPR_ABS, OPR_ADD, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_BNOR, OPR_BXOR, OPR_CONST, OPR_CVT, OPR_CVTL, OPR_ILOAD, OPR_INTCONST, OPR_LDA, OPR_LDID, OPR_LSHR, OPR_MADD, OPR_MAX, OPR_MIN, OPR_MPY, OPR_NEG, OPR_NMADD, OPR_RECIP, OPR_SELECT, OPR_SHL, OPR_SUB, OPT_STAB::Safe_to_speculate(), val, WN_aux(), WN_const_val(), WN_desc(), WN_kid0(), WN_kid1(), WN_kid2(), WN_operator(), and WN_rtype().
Referenced by Conv_to_select(), and Lower_if_stmt().
Definition at line 1768 of file opt_cfg.cxx.
References _current_bb, _opt_stab, Add_one_stmt(), OPT_STAB::Alias_classification(), FEEDBACK::Annot(), Append_bb(), BOOL, Connect_predsucc(), Conv_to_select(), Copy_addr_expr(), ALIAS_CLASSIFICATION::Copy_alias_class(), Create_bb(), Create_conditional(), Create_labelled_bb(), Cur_PU_Feedback, END_BREAK, END_FALLTHRU, END_NOT, FALSE, FEEDBACK::FB_lower_branch(), If_conv_criteria_met(), INT, Is_simple_expr(), Is_True, BB_NODE::Labnam(), load(), Lower_fully(), MTYPE_byte_size, Mtype_comparison(), MTYPE_I2, MTYPE_I4, Mtype_TransferSign(), New_bb(), OPC_BLOCK, OPR_EQ, OPR_GE, OPR_GT, OPR_IF, OPR_ILOAD, OPR_INTCONST, OPR_LE, OPR_LT, OPR_NE, OPR_STBITS, OPR_STID, OPTIMISTIC_AC_ID, FEEDBACK::Query_total_out(), Screen_cand(), BB_NODE::Set_linenum(), store(), TRUE, TY_pointed, void, WN_aux(), WN_const_val(), WN_CopyNode(), WN_CreateBlock, WN_CreateEval, WN_CreateGoto, WN_CreateIload, WN_desc(), WN_else, WN_field_id(), WN_first(), WN_Get_Linenum(), WN_if_test, WN_kid0(), WN_kid1(), WN_last(), WN_Ldid(), WN_MAP32_Get, WN_MAP32_Set, WN_MAP_ALIAS_CLASS, WN_map_id(), WN_offset(), WN_opcode(), WN_operator(), WN_prev(), WN_rtype(), WN_Select, WN_set_aux(), WN_Set_Linenum(), WN_set_map_id(), WN_Simp_Compare_Trees(), WN_then, WN_ty(), WOPT_Enable_Edge_Placement, and WOPT_Enable_If_Conv_Limit.
Referenced by Add_one_stmt().
Definition at line 2452 of file opt_cfg.cxx.
References _current_bb, _mem_pool, Append_label_map(), Append_wn_in(), BB_IO, BOOL, Calls_break(), Connect_predsucc(), Create_bb(), CXX_NEW, END_FALLTHRU, END_NOT, FALSE, Get_bb_from_label(), i, INT32, BB_NODE::IO_entries(), IO_TAB_SIZE, IOC_END, IOC_EOR, IOC_ERR, BB_NODE::IOinfo(), Is_True, lab, OPC_IO_ITEM, opcode, OPCODE_has_inumber(), OPR_GOTO, BB_NODE::Set_hascall(), BB_NODE::Set_io_bb(), BB_NODE::Set_io_entries(), BB_NODE::Set_ioinfo(), BB_NODE::Set_kind(), TRUE, WN_io_item(), WN_kid(), WN_kid0(), WN_kid_count(), WN_label_number(), WN_opcode(), and WN_operator().
Referenced by Add_one_stmt().
Definition at line 2095 of file opt_cfg.cxx.
References _current_bb, _mem_pool, Add_one_stmt(), Alloc_label(), Append_bb(), Append_label_map(), BB_DOEND, BB_DOSTART, BB_DOSTEP, body_bb, BOOL, Create_bb(), Cur_loop_depth(), Cur_PU_Feedback, CXX_NEW, END_BREAK, END_NOT, FEEDBACK::FB_lower_loop_alt(), BB_NODE::Firststmt(), flags, FmtAssert, Inside_mp_do(), Is_True, BB_NODE::Labnam(), LOOP_ORIGINAL_DO, LOOP_PRE_DO, MP_DOACROSS, MP_PDO, New_bb(), BB_NODE::Reset_MP_region(), Set_cur_loop_depth(), BB_LOOP::Set_flag(), BB_NODE::Set_kind(), BB_NODE::Set_linenum(), BB_NODE::Set_loop(), BB_LOOP::Set_orig_wn(), BB_LOOP::Set_promoted_do(), start_bb(), Top_mp_type(), TRUE, WN_CreateFalsebr, WN_CreateGoto, WN_do_body, WN_end, WN_FLAG_DO_LOOP, WN_FLAG_PROMOTED_DO_LOOP, Wn_flags(), WN_Get_Linenum(), WN_index, WN_Set_Linenum(), WN_start, and WN_step.
Referenced by Add_one_stmt().
Definition at line 2267 of file opt_cfg.cxx.
References _mem_pool, Add_one_stmt(), Alloc_label(), Append_label_map(), BB_REPEATBODY, BB_REPEATEND, body_bb, Cur_loop_depth(), Cur_PU_Feedback, CXX_NEW, END_BREAK, END_NOT, FEEDBACK::FB_lower_loop(), BB_NODE::Labnam(), LOOP_PRE_REPEAT, New_bb(), Set_cur_loop_depth(), BB_LOOP::Set_flag(), BB_NODE::Set_kind(), BB_NODE::Set_linenum(), BB_NODE::Set_loop(), BB_LOOP::Set_orig_wn(), TRUE, WN_CreateTruebr, WN_Get_Linenum(), WN_Set_Linenum(), WN_while_body, and WN_while_test.
Referenced by Add_one_stmt().
Definition at line 2204 of file opt_cfg.cxx.
References _mem_pool, Add_one_stmt(), Alloc_label(), Append_bb(), Append_label_map(), BB_WHILEEND, body_bb, Create_bb(), Cur_loop_depth(), Cur_PU_Feedback, CXX_NEW, END_BREAK, END_NOT, FEEDBACK::FB_lower_loop_alt(), BB_NODE::Labnam(), LOOP_PRE_WHILE, New_bb(), Set_cur_loop_depth(), BB_LOOP::Set_flag(), BB_NODE::Set_kind(), BB_NODE::Set_linenum(), BB_NODE::Set_loop(), BB_LOOP::Set_orig_wn(), TRUE, WN_CreateFalsebr, WN_CreateGoto, WN_Get_Linenum(), WN_Set_Linenum(), WN_while_body, and WN_while_test.
Referenced by Add_one_stmt().
Definition at line 2323 of file opt_cfg.cxx.
References _current_bb, _mem_pool, Add_one_stmt(), Alloc_label(), Append_bb(), Append_label_map(), BB_GOTO, Connect_predsucc(), Create_bb(), Cur_PU_Feedback, CXX_NEW, END_BREAK, END_FALLTHRU, END_NOT, FEEDBACK::FB_lower_branch(), BB_NODE::Labnam(), New_bb(), BB_NODE::Set_ifinfo(), BB_NODE::Set_ifmerge(), TRUE, WN_CreateFalsebr, WN_else, WN_Get_Linenum(), WN_if_test, WN_Set_Linenum(), and WN_then.
Referenced by Add_one_stmt().
Definition at line 2386 of file opt_cfg.cxx.
References _current_bb, _mem_pool, Append_label_map(), Append_wn_in(), BB_VARGOTO, Connect_predsucc(), Create_bb(), CXX_NEW, END_BREAK, Get_bb_from_label(), INT32, Is_True, OPC_BLOCK, OPC_GOTO, OPC_REGION_EXIT, BB_NODE::Set_hasujp(), BB_NODE::Set_kind(), BB_NODE::Set_switchcase(), BB_NODE::Set_switchdefault(), BB_NODE::Set_switchinfo(), WN_first(), WN_kid(), WN_kid1(), WN_kid_count(), WN_label_number(), WN_next(), WN_num_entries(), and WN_opcode().
Referenced by Add_one_stmt().
Definition at line 2538 of file opt_cfg.cxx.
References _current_bb, _mem_pool, _rgn_level, Add_one_stmt(), Append_label_map(), Append_wn_in(), BB_EXIT, BB_GOTO, BB_REGIONEXIT, BB_REGIONSTART, Connect_predsucc(), Copy_xpragmas_into(), Create_bb(), CXX_NEW, END_BREAK, END_FALLTHRU, BB_NODE::Firststmt(), Get_bb_from_label(), INT32, Is_region_with_pragma(), Is_True, BB_NODE::Kind(), MP_DOACROSS, MP_PDO, MP_REGION, New_bb(), Null_bb_region(), Pop_bb_region(), Pop_mp_rid(), Pop_mp_type(), Push_bb_region(), Push_mp_rid(), Push_mp_type(), REGION_consistency_check(), REGION_get_rid(), REGION_is_mp(), Rgn_level(), Rid(), RID_id, RID_level, RID_map, RID_rwn, RL_MAINOPT, Set_has_regions(), BB_NODE::Set_hasujp(), BB_NODE::Set_kind(), BB_NODE::Set_linenum(), BB_REGION::Set_parent(), BB_REGION::Set_region_end(), BB_NODE::Set_regioninfo(), Top_bb_region(), TRUE, WN_ereg_supp(), WN_first(), WN_Get_Linenum(), WN_label_number(), WN_MAP_Set, WN_next(), WN_PRAGMA_DOACROSS, WN_PRAGMA_PARALLEL_DO, WN_PRAGMA_PDO_BEGIN, WN_PRAGMA_SINGLE_PROCESS_BEGIN, WN_region_body, WN_region_exits, and WN_region_pragmas.
Referenced by Add_one_stmt().
Definition at line 2789 of file opt_cfg.cxx.
References _agoto_pred_vec, _agoto_succ_vec, _current_bb, _exc, Add_one_compgoto_stmt(), Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_if_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_while_do_stmt(), DYN_ARRAY< T >::AddElement(), Append_bb(), Append_label_map(), Append_wn_in(), BB_EXIT, BB_LOGIF, BB_REGIONEXIT, BB_VARGOTO, BOOL, Calls_break(), Connect_predsucc(), Create_bb(), Create_conditional(), Create_empty_preheader(), Cur_PU_Feedback, END_BREAK, END_FALLTHRU, END_NOT, END_UNKNOWN, FALSE, FEEDBACK::FB_lower_branch(), First_bb(), BB_NODE::Firststmt(), FmtAssert, Get_bb_from_label(), BB_NODE::Hascall(), BB_NODE::Hasujp(), Is_True, BB_NODE::Kind(), LABEL_addr_saved(), LABEL_target_of_goto_outer_block(), BB_NODE::Labnam(), EXC::Link_top_es(), EXC::Link_wn_es(), Lower_do_loop(), Lower_do_while(), Lower_fully(), Lower_if_stmt(), Lower_while_do(), New_bb(), CHAIN_NODE::Next(), Null_bb_region(), opc, OPC_BLOCK, OPC_LABEL, OPC_REGION, OPC_RETURN, OPCODE_is_scf(), OPCODE_name(), OPCODE_operator(), OPR_AGOTO, OPR_ALTENTRY, OPR_BLOCK, OPR_CALL, OPR_CAND, OPR_CIOR, OPR_COMPGOTO, OPR_DO_LOOP, OPR_DO_WHILE, OPR_FALSEBR, OPR_FUNC_ENTRY, OPR_GOTO, OPR_GOTO_OUTER_BLOCK, OPR_ICALL, OPR_IF, OPR_INTRINSIC_CALL, OPR_IO, OPR_LABEL, OPR_PICCALL, OPR_PRAGMA, OPR_REGION, OPR_REGION_EXIT, OPR_RETURN, OPR_RETURN_VAL, OPR_TRUEBR, OPR_WHILE_DO, OPR_XPRAGMA, EXC::Pop_exc_scope(), Process_entry(), Pu_Table, EXC::Push_exc_scope(), REGION_is_EH(), REGION_scan_exits(), Rid(), RID_rwn, RID_TYPE_func_entry, Rvi_break_stmt(), EXC_SCOPE::Set_begin_wn(), BB_NODE::Set_callrel(), BB_NODE::Set_hascall(), BB_NODE::Set_haspragma(), BB_NODE::Set_hasujp(), BB_NODE::Set_kind(), BB_NODE::Set_label_loop_info(), BB_NODE::Set_linenum(), BB_NODE::Set_regioninfo(), ST_pu(), Top_bb_region(), TRUE, void, WN_Call_Never_Return, WN_COPY_Tree_With_Map(), WN_Create(), WN_first(), WN_Get_Linenum(), WN_kid0(), WN_Label_Is_Handler_Begin, WN_label_loop_info, WN_label_number(), WN_last(), WN_next(), WN_opcode(), WN_operator(), WN_prev(), WN_region_exits, WN_st(), and WOPT_Enable_Noreturn_Attr_Opt.
Referenced by Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_if_stmt(), Add_one_region(), Add_one_while_do_stmt(), Create(), Create_conditional(), Create_entrytest(), Create_exittest(), Create_loopbody(), Lower_do_loop(), Lower_if_stmt(), and Process_entry().
connect
Definition at line 2694 of file opt_cfg.cxx.
References _current_bb, Add_altentry(), Add_one_stmt(), Append_label_map(), BB_ENTRY, Connect_predsucc(), Cur_PU_Feedback, END_BREAK, END_NOT, FALSE, FEEDBACK::FB_duplicate_node(), BB_NODE::Firststmt(), FmtAssert, i, INT, Is_True, LABEL_target_of_goto_outer_block(), SLIST_NODE::Len(), New_bb(), OPR_ALTENTRY, OPR_FUNC_ENTRY, OPR_LABEL, BB_NODE::Pred(), BB_NODE::Set_entrywn(), BB_NODE::Set_kind(), TRUE, void, WN_COPY_All_Maps(), WN_COPY_Tree_With_Map(), WN_CopyNode(), WN_CreateBlock, WN_formal, WN_func_body, WN_func_pragmas, WN_func_varrefs, WN_kid_count(), WN_label_flag(), WN_label_number(), WN_num_formals, and WN_operator().
Referenced by Add_one_stmt().
Definition at line 608 of file opt_cfg.cxx.
References Alloc_label(), Append_label_map(), BB_NODE::Firststmt(), Init_stmtlist(), Is_True, BB_NODE::Labnam(), and WN_CreateLabel.
Referenced by Create_conditional(), Create_labelled_bb(), and Lower_do_while().
Definition at line 2510 of file opt_cfg.cxx.
References Append_wn_in(), FOR_ALL_ELEM, Init, Is_True, OPC_VCALL, OPR_GOTO, OPR_PRAGMA, OPR_XPRAGMA, BB_NODE::Set_haspragma(), WN_first(), WN_last(), WN_opcode(), and WN_operator().
Referenced by Add_one_region().
Definition at line 629 of file opt_cfg.cxx.
References Create_bb(), and Create_label_stmt().
Referenced by Create_conditional(), Create_loopbody(), Lower_do_loop(), Lower_do_while(), Lower_if_stmt(), and Lower_while_do().
Definition at line 780 of file opt_cfg.cxx.
References _current_bb, Add_one_stmt(), FmtAssert, BB_NODE::Id(), BB_NODE::Labnam(), WN_CreateFalsebr, WN_Get_Linenum(), and WN_Set_Linenum().
Definition at line 801 of file opt_cfg.cxx.
References Add_one_stmt(), Append_bb(), body_bb, Create_labelled_bb(), END_BREAK, END_FALLTHRU, New_bb(), BB_NODE::Set_linenum(), void, and WN_Get_Linenum().
Referenced by Lower_do_loop(), Lower_do_while(), and Lower_while_do().
Definition at line 824 of file opt_cfg.cxx.
References _current_bb, Add_one_stmt(), FmtAssert, BB_NODE::Id(), Is_True, BB_NODE::Labnam(), BB_NODE::Set_kind(), WN_CreateTruebr, WN_Get_Linenum(), and WN_Set_Linenum().
| BB_NODE * CFG::Create_conditional | ( | WN * | cond, | |
| BB_NODE * | true_bb, | |||
| BB_NODE * | false_bb, | |||
| BOOL | true_branch, | |||
| WN ** | created_branch | |||
| ) | [private] |
Definition at line 641 of file opt_cfg.cxx.
References _current_bb, Add_one_stmt(), Append_bb(), BOOL, Connect_predsucc(), Create_label_stmt(), Create_labelled_bb(), Cur_PU_Feedback, FALSE, FEEDBACK::FB_lower_circuit(), Is_True, BB_NODE::Labnam(), OPR_CAND, OPR_CIOR, TRUE, WN_CreateFalsebr, WN_CreateTruebr, WN_Get_Linenum(), WN_kid0(), WN_kid1(), WN_operator(), and WN_Set_Linenum().
Referenced by Add_one_stmt(), Lower_do_loop(), Lower_do_while(), Lower_if_stmt(), and Lower_while_do().
Definition at line 847 of file opt_cfg.cxx.
References Cur_loop_depth(), BB_NODE::Set_label_loop_info(), WN_CreateLoopInfo, WN_do_loop_info, and WN_index.
Referenced by Lower_do_loop().
Definition at line 872 of file opt_cfg.cxx.
References Cur_loop_depth(), BB_NODE::Set_label_loop_info(), and WN_CreateLoopInfo.
Referenced by Lower_do_while(), and Lower_while_do().
| BB_LOOP * CFG::Ident_loop | ( | BB_NODE * | first_bb, | |
| BB_NODE * | last_bb, | |||
| INT32 | loopnest, | |||
| BB_LOOP * | cur_loop | |||
| ) | [private] |
Definition at line 4445 of file opt_cfg.cxx.
References _last_bb_id, BB_LOOP::Append(), BB_DOEND, BB_DOSTART, BB_DOSTEP, BB_ENTRY, BB_EXIT, BB_GOTO, BB_IO, BB_LOGIF, BB_REGIONEXIT, BB_REGIONSTART, BB_REPEATBODY, BB_REPEATEND, BB_VARGOTO, BB_WHILEEND, BBNS_EMPTY, BB_LOOP::Body_set(), CXX_NEW, BB_LOOP::End(), FALSE, FmtAssert, BB_NODE::Id(), Is_Trace, Is_True, BB_NODE::Kind(), BB_NODE::Loop(), BB_NODE::Loopend(), BB_NODE::Loopmerge(), BB_NODE::Loopstep(), Mem_pool(), CHAIN_NODE::Next(), CHAIN_NODE::Prev(), BB_NODE::Regioninfo(), BB_LOOP::Set_child(), BB_LOOP::Set_header(), BB_NODE::Set_innermost(), BB_NODE::Set_loopbodyset(), BB_NODE::Set_loopdepth(), BB_LOOP::Set_parent(), TFile, Trace(), BB_NODE_SET::Union1D(), and BB_NODE_SET::UnionD().
Referenced by Analyze_loops().
Definition at line 4538 of file opt_cfg.cxx.
References _bb_set, _last_bb_id, BBNS_EMPTY, BB_LOOP::Body_set(), BB_LOOP::Child(), BB_NODE_SET::CopyD(), CXX_NEW, BB_NODE_SET::DifferenceD(), FOR_ALL_NODE, Init, and Mem_pool().
Referenced by Loop_itself_is_empty().
Definition at line 4582 of file opt_cfg.cxx.
References _non_true_body_set, BOOL, BB_NODE::Code_size_est(), FALSE, FOR_ALL_ELEM, fprintf(), BB_NODE::Id(), BB_LOOP::Incr_size_estimate(), Init, BB_NODE_SET::MemberP(), BB_NODE::Reset_TLBS_processing(), BB_NODE::Set_TLBS_processing(), BB_NODE::Succ(), TFile, BB_NODE::TLBS_processing(), Trace(), TRUE, BB_LOOP::True_body_set(), and BB_NODE_SET::Union1D().
Referenced by Compute_true_loop_body_set().
Definition at line 4631 of file opt_cfg.cxx.
References _last_bb_id, _non_true_body_set, BBNS_EMPTY, BB_LOOP::Body(), BB_LOOP::Body_set(), Check_if_it_can_reach_body_first_bb(), BB_LOOP::Child(), BB_NODE_SET::ClearD(), BB_NODE::Code_size_est(), CXX_NEW, BB_NODE_SET::DifferenceD(), FOR_ALL_ELEM, FOR_ALL_NODE, fprintf(), BB_LOOP::Incr_size_estimate(), Init, Mem_pool(), BB_NODE_SET::MemberP(), BB_NODE_SET::Print(), BB_LOOP::Set_size_estimate(), BB_LOOP::Set_true_body_set(), BB_LOOP::Size_estimate(), TFile, Trace(), BB_LOOP::True_body_set(), BB_NODE_SET::Union1D(), BB_NODE_SET::UnionD(), and BB_NODE_SET::UniverseD().
Referenced by Analyze_loops().
Definition at line 4554 of file opt_cfg.cxx.
References _bb_set, BB_LOGIF, BB_LOOP::Child(), BB_NODE_SET::EmptyP(), BB_LOOP::End(), FALSE, BB_NODE::Kind(), Set_loop_bb_set(), and TRUE.
Definition at line 3350 of file opt_cfg.cxx.
References BB_REGIONEXIT, BB_REGIONSTART, Clear_bb_region(), Clear_mp_rid(), Clear_mp_type(), FOR_ALL_NODE, Init, Is_True, BB_NODE::Kind(), MP_REGION, NULL_mp_type(), Pop_bb_region(), Pop_mp_rid(), Pop_mp_type(), Push_bb_region(), Push_mp_rid(), Push_mp_type(), BB_NODE::Regioninfo(), BB_REGION::Rid(), RID_id, RID_TYPE_mp, BB_NODE::Set_MP_region(), BB_NODE::Set_rid_id(), and Top_mp_rid().
Referenced by Create().
| BB_NODE * CFG::LMV_clone_block | ( | const BB_NODE * | src, | |
| LMV_CFG_ADAPTOR * | adaptor | |||
| ) | [private] |
Definition at line 982 of file opt_lmv.cxx.
References BB_NODE::Add_label(), Clone_bb(), Create_and_allocate_bb(), CXX_NEW, BB_NODE::Flag(), BB_NODE::Freq(), BB_NODE::Id(), BB_NODE::Kind(), BB_NODE::Labnam(), BB_NODE::Linenum(), BB_NODE::Loopdepth(), LMV_CFG_ADAPTOR::Map_cloned_bb(), LMV_CFG_ADAPTOR::Map_cloned_label(), Mem_pool(), BB_NODE::Rid_id(), BB_NODE::Set_flag(), BB_NODE::Set_freq(), BB_NODE::Set_kind(), BB_NODE::Set_linenum(), BB_NODE::Set_loopdepth(), BB_NODE::Set_phi_list(), and BB_NODE::Set_rid_id().
Referenced by LMV_clone_loop_body().
Definition at line 1011 of file opt_lmv.cxx.
References Create_and_allocate_bb(), CXX_NEW, BB_NODE::Flag(), BB_NODE::Freq(), BB_NODE::Linenum(), BB_NODE::Loopdepth(), Mem_pool(), BB_NODE::Rid_id(), BB_NODE::Set_flag(), BB_NODE::Set_freq(), BB_NODE::Set_linenum(), BB_NODE::Set_loopdepth(), BB_NODE::Set_phi_list(), and BB_NODE::Set_rid_id().
Referenced by LMV_clone_loop().
| void CFG::LMV_clone_pred_succ_relationship | ( | LMV_CFG_ADAPTOR * | adaptor | ) | [private] |
Definition at line 1034 of file opt_lmv.cxx.
References LMV_CFG_ADAPTOR::Cloned_loop_header(), LMV_CFG_ADAPTOR::Cloned_loop_merge(), LMV_CFG_ADAPTOR::Cloned_loop_preheader(), Connect_predsucc(), FOR_ALL_ELEM, LMV_CFG_ADAPTOR::Get_cloned_bb(), BB_NODE::Id(), Init, Is_True, BB_LOOP::Merge(), BB_NODE::Pred(), BB_LOOP::Preheader(), LMV_CFG_ADAPTOR::Src_loop(), and BB_LOOP::True_body_set().
Referenced by LMV_clone_loop().
| void CFG::LMV_clone_loop_body | ( | LMV_CFG_ADAPTOR * | adaptor | ) | [private] |
Definition at line 1082 of file opt_lmv.cxx.
References LMV_CFG_ADAPTOR::Cloned_loop_header(), FOR_ALL_ELEM, fprintf(), LMV_CFG_ADAPTOR::Get_cloned_bb(), BB_LOOP::Header(), BB_NODE::Id(), Init, INT, Is_True, iter, LMV_clone_block(), BB_NODE_SET::MemberP(), CHAIN_NODE::Next(), NULL, LMV_CFG_ADAPTOR::Pred_next_lst_header(), BB_NODE::Set_next(), LMV_CFG_ADAPTOR::Set_pred_next_lst_header(), LMV_CFG_ADAPTOR::Set_pred_next_lst_tail(), BB_NODE::Set_prev(), BB_NODE_SET::Size(), LMV_CFG_ADAPTOR::Src_loop(), TFile, LMV_CFG_ADAPTOR::Trace(), and BB_LOOP::True_body_set().
Referenced by LMV_clone_loop().
| void CFG::LMV_update_internal_labels | ( | LMV_CFG_ADAPTOR * | adaptor | ) | [private] |
Definition at line 1156 of file opt_lmv.cxx.
References br, BB_NODE::Branch_stmtrep(), LMV_CFG_ADAPTOR::Cloned_loop_merge(), FOR_ALL_ELEM, LMV_CFG_ADAPTOR::Get_cloned_bb(), LMV_CFG_ADAPTOR::Get_cloned_label(), BB_LOOP::Header(), BB_NODE::Id(), Init, INT, Is_True, lab, STMTREP::Label_number(), BB_NODE::Labnam(), BB_NODE_SET::MemberP(), BB_LOOP::Merge(), BB_NODE::Pred(), STMTREP::Set_label_number(), LMV_CFG_ADAPTOR::Src_loop(), and BB_LOOP::True_body_set().
Referenced by LMV_clone_loop().
| BB_LOOP * CFG::LMV_clone_BB_LOOP | ( | LMV_CFG_ADAPTOR * | adaptor | ) | [private] |
Definition at line 1221 of file opt_lmv.cxx.
References BBNS_EMPTY, BB_LOOP::Body(), LMV_CFG_ADAPTOR::Cloned_loop_header(), LMV_CFG_ADAPTOR::Cloned_loop_merge(), LMV_CFG_ADAPTOR::Cloned_loop_preheader(), CXX_NEW, end, BB_LOOP::End(), BB_LOOP::Flags(), FOR_ALL_ELEM, LMV_CFG_ADAPTOR::Get_cloned_bb(), BB_LOOP::Has_entry_guard(), idx, BB_LOOP::Index(), Init, Last_bb_id(), BB_NODE::Loop(), BB_LOOP::Loopstmt(), Mem_pool(), BB_LOOP::Orig_wn(), BB_LOOP::Parent(), BB_LOOP::Promoted_do(), BB_LOOP::Set_flag(), BB_LOOP::Set_has_entry_guard(), BB_LOOP::Set_header(), BB_NODE::Set_loop(), BB_LOOP::Set_loopstmt(), BB_LOOP::Set_orig_wn(), BB_LOOP::Set_parent(), BB_LOOP::Set_preheader(), BB_LOOP::Set_promoted_do(), BB_LOOP::Set_size_estimate(), BB_LOOP::Set_true_body_set(), BB_LOOP::Set_valid_doloop(), BB_LOOP::Set_well_formed(), BB_LOOP::Set_wn_trip_count(), BB_LOOP::Size_estimate(), LMV_CFG_ADAPTOR::Src_loop(), start, BB_LOOP::Start(), step(), BB_LOOP::Step(), BB_LOOP::True_body_set(), BB_LOOP::Valid_doloop(), BB_LOOP::Well_formed(), and BB_LOOP::Wn_trip_count().
Referenced by LMV_clone_loop().
| void CFG::LMV_gen_precondioning_stuff | ( | LMV_CFG_ADAPTOR * | adaptor | ) | [private] |
Definition at line 1334 of file opt_lmv.cxx.
References BB_NODE::Add_label(), BB_NODE::Append_stmtrep(), BB_GOTO, BB_LOGIF, br, BB_NODE::Branch_stmtrep(), LMV_CFG_ADAPTOR::Cloned_loop_merge(), LMV_CFG_ADAPTOR::Cloned_loop_preheader(), Connect_predsucc(), Create_and_allocate_bb(), CXX_NEW, FOR_ALL_ELEM, fprintf(), BB_NODE::Id(), Init, CHAIN_NODE::Insert_Before(), INT, lab, STMTREP::Label_number(), BB_NODE::Labnam(), Mem_pool(), BB_LOOP::Merge(), NULL, OPC_FALSEBR, BB_NODE::Pred(), LMV_CFG_ADAPTOR::Predicate(), BB_LOOP::Preheader(), BB_NODE::Replace_succ(), BB_NODE::Set_ifinfo(), BB_NODE::Set_ifmerge(), STMTREP::Set_label_number(), BB_LOOP::Set_merge(), BB_NODE::Set_next(), BB_NODE::Set_pred(), BB_NODE::Set_prev(), STMTREP::Set_rhs(), LMV_CFG_ADAPTOR::Src_loop(), TFile, and LMV_CFG_ADAPTOR::Trace().
Referenced by LMV_clone_loop().
| void CFG::LMV_clone_BB_IFINFO | ( | LMV_CFG_ADAPTOR * | adaptor | ) | [private] |
Definition at line 1272 of file opt_lmv.cxx.
References BB_LOGIF, BB_IFINFO::Cond(), CXX_NEW, BB_IFINFO::Else(), BB_IFINFO::Elseloc(), FOR_ALL_ELEM, LMV_CFG_ADAPTOR::Get_cloned_bb(), BB_NODE::Ifinfo(), Init, Is_True, iter, BB_NODE::Kind(), Mem_pool(), BB_IFINFO::Merge(), BB_NODE::Set_ifinfo(), LMV_CFG_ADAPTOR::Src_loop(), BB_IFINFO::Then(), BB_IFINFO::Thenloc(), and BB_LOOP::True_body_set().
Referenced by LMV_clone_loop().
Definition at line 394 of file opt_cfg.h.
References _trace.
Referenced by Add_bb_to_edge(), Analyze_loops(), Check_if_it_can_reach_body_first_bb(), Compute_true_loop_body_set(), Connect_agotos(), Delete_bb(), Delete_empty_BB(), Find_not_reached(), Ident_loop(), Process_multi_entryexit(), Process_not_reached(), Prop_entry(), and Remove_path().
Definition at line 5599 of file opt_cfg.cxx.
References Entry_bb(), FOR_ALL_ELEM, FOR_ALL_NODE, BB_NODE::Id(), Init, BB_NODE::Print(), and WOPT_Enable_Source_Order.
Referenced by Create(), SSA::Create_CODEMAP(), COMP_UNIT::Do_bitwise_dce(), COMP_UNIT::Do_copy_propagate(), COMP_UNIT::Do_dead_code_elim(), COMP_UNIT::Do_iv_recognition(), LOCAL_CLSC::Do_local_clsc(), WOVP::Do_wovp(), dump_cfg(), COMP_UNIT::Fold_lda_iload_istore(), EXP_WORKLST::Insert_one_operand(), COMP_UNIT::Introduce_mtype_bool(), COMP_UNIT::Lower_to_extract_compose(), OPT_TAIL::Mutate(), OPT_TAIL::OPT_TAIL(), LOOP_MULTIVER::Perform_loop_multiversioning(), ETABLE::Perform_LPRE_optimization(), RVI::Perform_phase1(), RVI::Perform_phase2(), ETABLE::Perform_PRE_optimization(), ETABLE::Perform_SPRE_optimization(), ETABLE::Perform_VNFRE_optimization(), Pre_Optimizer(), reconstruct_CFG(), Rename_CODEMAP(), Simplify_bool_expr(), and COMP_UNIT::U64_lower_cr().
Definition at line 5632 of file opt_cfg.cxx.
References BB_LOOP::Body_set(), BB_LOOP::Child(), FOR_ALL_ELEM, FOR_ALL_NODE, fprintf(), BB_NODE::Id(), and Init.
Referenced by PrintVis().
Definition at line 5655 of file opt_cfg.cxx.
References FOR_ALL_NODE, fprintf(), Init, Loops(), PrintLoopVis(), and BB_NODE::PrintVis().
Definition at line 5681 of file opt_cfg.cxx.
References FOR_ALL_ELEM, FOR_ALL_NODE, fprintf(), BB_NODE::Id(), Init, and BB_NODE::Rcfg_dom_frontier().
Definition at line 5698 of file opt_cfg.cxx.
References _bb_vec, _first_bb_id, _last_bb_id, FOR_ALL_NODE, fprintf(), Init, and BB_NODE::Validate().
Referenced by Create().
| void CFG::Create | ( | WN * | func_nd, | |
| BOOL | lower_scf, | |||
| BOOL | calls_break, | |||
| REGION_LEVEL | rgn_level, | |||
| OPT_STAB * | opt_stab, | |||
| BOOL | do_tail | |||
| ) |
Definition at line 3445 of file opt_cfg.cxx.
References _calls_break, _first_bb, _last_bb, _lower_fully, _opt_stab, _rgn_level, _rid, Add_altentry(), Add_one_stmt(), Append_bb(), CFG_VERF_FLAG, Connect_agotos(), Create_bb(), DBar, FmtAssert, fprintf(), Get_Trace(), Ident_mp_regions(), Is_True, OPT_TAIL::Mutate(), OPR_FUNC_ENTRY, OPR_REGION, Print(), Process_multi_entryexit(), REGION_consistency_check(), REGION_get_rid(), Rid(), RID_id, RID_Tree_Print(), Set_cur_loop_depth(), TFile, TP_GLOBOPT, TRUE, Validate(), and WN_operator().
Referenced by RVI::Perform_phase1(), RVI::Perform_phase2(), and Pre_Optimizer().
Definition at line 653 of file opt_dom.cxx.
References _loc_pool, Compute_dom_dfs_id(), DOM_INFO::Compute_dom_tree(), Compute_pdom_dfs_id(), CXX_NEW, DOM_DUMP_FLAG, DOM_INFO::DOM_INFO(), Entry_bb(), Exit_bb(), OPT_POOL_Pop, and OPT_POOL_Push.
Referenced by Invalidate_and_update_aux_info(), and Pre_Optimizer().
Definition at line 753 of file opt_dom.cxx.
References _mem_pool, Assert, Dom_compute_dom_frontier(), EC_Unimplemented, Entry_bb(), and NULL.
Referenced by Invalidate_and_update_aux_info(), and Pre_Optimizer().
Definition at line 824 of file opt_dom.cxx.
References _mem_pool, Assert, Dom_compute_rcfg_dom_frontier(), EC_Unimplemented, Entry_bb(), Exit_bb(), and NULL.
Referenced by Invalidate_and_update_aux_info(), and Pre_Optimizer().
Definition at line 418 of file opt_cfg.h.
References _mem_pool.
Referenced by Add_bb_to_edge(), DSE::Add_EH_exposed_use(), DCE::Add_goto_stmt(), DCE::Add_path_to_ipdom(), Allocate_loop(), Analyze_loops(), DOM_INFO::Build_dom_tree(), DOM_INFO::Build_pdom_tree(), DCE::Check_for_label(), Clone_bb(), Compute_true_loop_body_set(), Dfs_vec(), Dpo_vec(), Ident_loop(), Invalidate_and_update_aux_info(), LMV_clone_BB_IFINFO(), LMV_clone_BB_LOOP(), LMV_clone_block(), LMV_create_alike_block(), LMV_gen_precondioning_stuff(), Pdo_vec(), Po_vec(), reconstruct_CFG(), Remove_bb(), Remove_critical_edge(), Remove_fake_entryexit_arcs(), Remove_path(), Set_loop_bb_set(), Split_bb_with_wns(), and DCE::Update_branch_to_bb_labels().
Definition at line 419 of file opt_cfg.h.
References _loc_pool.
Referenced by DCE::DCE(), SSA::Dead_store_elim(), Delete_bb(), OPT_TAIL::Fixup_exit(), DCE::Get_full_rcfg_dom_frontier(), DCE::Init_return_vsym(), DCE::Insert_required_gotos(), DCE::Mark_return_vsym_phi_live(), OPT_TAIL::OPT_TAIL(), Process_no_exit(), Remove_critical_edge(), DCE::Remove_dead_statements(), DCE::Set_dce_visited(), DCE::Set_retvsym_visited(), Set_volatile_map(), sort_merge_and_delete_zones(), DCE::Unreachable_code_elim(), Verify_tree(), DCE::~DCE(), and OPT_TAIL::~OPT_TAIL().
Definition at line 420 of file opt_cfg.h.
References _htable.
Referenced by Clone_bb(), WOVP::Do_wovp(), Set_volatile_map(), and sort_merge_and_delete_zones().
Definition at line 423 of file opt_cfg.h.
References _last_bb_id.
Referenced by Allocate_loop(), BITWISE_DCE::BITWISE_DCE(), Dfs_vec(), DOM_INFO::DOM_INFO(), Dpo_vec(), DOM_INFO::DOM_REC::Init(), LMV_clone_BB_LOOP(), OPT_FEEDBACK::OPT_FEEDBACK(), Pdo_vec(), SSA::Place_phi_node(), and WOVP::Write_once_check().
Definition at line 424 of file opt_cfg.h.
References _last_bb_id.
Referenced by DU_MANAGER::Alloc_IPA_summary(), clone_zones(), DU_MANAGER::Collect_CFG(), OPTCOUNT::Collect_statistics(), DCE::DCE(), ETABLE::ETABLE(), EXP_HOISTING::EXP_HOISTING(), DCE::Get_full_rcfg_dom_frontier(), DCE::Insert_required_gotos(), LCLSC_NODE::LCLSC_NODE(), LOCAL_CLSC::LR_overlapped(), OPTCOUNT::OPTCOUNT(), LOCAL_CLSC::Perform_clsc(), Process_no_exit(), RVI_LR::RVI_LR(), SSU::SSU(), and DCE::Unreachable_code_elim().
Definition at line 192 of file opt_cfg.cxx.
References Fake_entry_bb(), Fake_exit_bb(), FALSE, and TRUE.
Referenced by OPT_FEEDBACK::OPT_FEEDBACK(), Process_not_reached(), reconstruct_CFG(), Remove_bb(), DCE::Remove_dead_statements(), DCE::Unreachable_code_elim(), DCE::Update_predecessor_lists(), and OPT_FEEDBACK::Verify().
Definition at line 205 of file opt_cfg.cxx.
References _bb_vec, _exit_vec, _first_bb, _last_bb, OPT_FEEDBACK::Delete_node(), Feedback(), FOR_ALL_ELEM, i, BB_NODE::Id(), Init, INT, BB_NODE::Is_first(), BB_NODE::Is_last(), Is_True, DYN_ARRAY< T >::Lastidx(), Mem_pool(), CHAIN_NODE::Next(), NULL, BB_NODE::Pred(), CHAIN_NODE::Prev(), Removable_bb(), CHAIN_NODE::Remove(), BB_NODE::Remove_pred(), BB_NODE::Remove_succ(), BB_NODE::Set_dom_dfs_id(), BB_NODE::Set_pdom_dfs_id(), and BB_NODE::Succ().
Referenced by Delete_bb(), reconstruct_CFG(), and DCE::Unreachable_code_elim().
Definition at line 255 of file opt_cfg.cxx.
References fprintf(), BB_NODE::Id(), Mem_pool(), BB_LIST::Pos(), BB_NODE::Pred(), BB_NODE::Remove_phi_reference(), BB_NODE::Remove_pred(), BB_NODE::Remove_succ(), TFile, and Trace().
Referenced by IVR::Convert_all_ivs(), Delete_bb(), Process_not_reached(), and DCE::Remove_path().
| void CFG::Delete_bb | ( | BB_NODE * | bb, | |
| MOD_PHI_BB_CONTAINER * | mod_phis | |||
| ) |
Definition at line 424 of file opt_cfg.cxx.
References _mem_pool, MOD_PHI_BB_CONTAINER::Add_entry(), BB_NODE::Append_pred(), BB_NODE::Append_succ(), BOOL, BB_LIST::Contains(), OPT_FEEDBACK::Delete_edge(), PHI_LIST::Dup_phi_node(), FALSE, Feedback(), FmtAssert, FOR_ALL_ELEM, BB_NODE::Id(), Init, INT, SLIST::Is_Empty(), Is_Trace, Is_True, SLIST_NODE::Len(), Loc_pool(), mINT32, OPT_FEEDBACK::Move_incoming_edges_dest(), SLIST_NODE::Next(), BB_LIST::Node(), BB_NODE::Phi_list(), BB_LIST::Pos(), BB_NODE::Pred(), Remove_bb(), Remove_path(), BB_NODE::Remove_phi_reference(), BB_NODE::Remove_pred(), BB_NODE::Remove_succ(), PHI_NODE::Set_bb(), BB_LIST::Set_node(), BB_NODE::Set_phi_list(), BB_NODE::Succ(), TFile, Trace(), TRUE, and TYPE_OPT_POOL_ALLOC_N.
Referenced by DCE::Remove_dead_statements().
Definition at line 437 of file opt_cfg.h.
References _entry_bb.
Referenced by DSE::Add_MU_list_for_calls(), Add_new_auxid_to_entry_chis(), Analyze_loops(), DOM_INFO::Build_dom_tree(), DU_MANAGER::Collect_CFG(), Compute_control_dependence(), Compute_dom_frontier(), Compute_dom_tree(), DOM_INFO::Compute_dom_tree(), OPT_STAB::Compute_FSA(), SSA::Construct(), SSA::Create_CODEMAP(), Dfs_vec(), Dpo_vec(), Find_entry_bb(), DCE::Find_required_statements(), Print(), Print_dom(), UPDATE< SUBSTITUE, CACHE_TEMPLATE, DONT_TRACK_CUR_VERSION >::Process_PU(), PRUNE_BOUND::Prune_boundary_sets(), DCE::Unreachable_code_elim(), OPT_STAB::Update_return_mu(), and COMP_UNIT::Verify_version().
Definition at line 438 of file opt_cfg.h.
References _exit_bb.
Referenced by DOM_INFO::Build_pdom_tree(), DU_MANAGER::Collect_CFG(), Compute_control_dependence(), Compute_dom_tree(), DOM_INFO::Compute_dom_tree(), SSU::Construct(), OPT_TAIL::Fixup_exit(), Get_pred_first_vec(), WOVP::Is_write_once(), DCE::Mark_infinite_loops_live(), Pdo_vec(), Print_pdom(), OPT_PU_POINTS_TO_SUMMARIZER::Summarize_points_to(), and OPT_STAB::Update_return_mu().
Definition at line 439 of file opt_cfg.h.
References _fake_entry_bb.
Referenced by Add_new_auxid_to_entry_chis(), DOM_INFO::Build_dom_tree(), DOM_INFO::Build_pdom_tree(), Change_block_kind(), DCE::Check_required_blocks(), DU_MANAGER::Collect_CFG(), COMP_UNIT::Do_dead_code_elim(), OPT_TAIL::Entry_is_well_behaved(), Find_entry_bb(), Find_exit_blocks(), Invalidate_and_update_aux_info(), BITWISE_DCE::Make_bb_live(), Process_multi_entryexit(), Process_no_exit(), Process_not_reached(), reconstruct_CFG(), Removable_bb(), Remove_fake_entryexit_arcs(), ETABLE::SPRE_rename(), and OPT_STAB::Update_return_mu().
Definition at line 440 of file opt_cfg.h.
References _fake_exit_bb.
Referenced by VALNUM_FRE::_collect_all_real_occurrences(), DCE::Add_path_to_ipdom(), DOM_INFO::Build_dom_tree(), DOM_INFO::Build_pdom_tree(), build_successor_graph(), DCE::Check_required_blocks(), DU_MANAGER::Collect_CFG(), EOCC::Collect_real_occurrences(), COMP_UNIT::Do_dead_code_elim(), Find_exit_blocks(), Find_no_exit_blocks(), Invalidate_and_update_aux_info(), WOVP::Is_write_once(), DCE::Mark_infinite_loops_live(), Process_multi_entryexit(), reconstruct_CFG(), Removable_bb(), Remove_fake_entryexit_arcs(), OPT_PU_POINTS_TO_SUMMARIZER::Summarize_points_to(), and OPT_STAB::Update_return_mu().
Definition at line 441 of file opt_cfg.h.
References _first_bb.
Referenced by Add_one_stmt(), Analyze_loops(), build_successor_graph(), Compute_loop_depth(), Delete_empty_BB(), CFG_ITER::First(), CFG_ITER::First_elem(), Fix_SCF_for_mainopt(), generate_loop_butterfly_zones(), OPT_FEEDBACK::OPT_FEEDBACK(), print_bb_loopinfo(), reconstruct_CFG(), DCE::Remove_dead_statements(), DCE::Unreachable_code_elim(), and OPT_FEEDBACK::Verify().
Definition at line 442 of file opt_cfg.h.
References _last_bb.
Referenced by Analyze_loops(), CFG_ITER::Last(), and LMV_CFG_ADAPTOR::LMV_CFG_ADAPTOR().
Definition at line 444 of file opt_cfg.h.
References _bb_vec.
Referenced by add_loop_to_zone(), add_to_zone_container(), DOM_INFO::Build_dom_tree(), DOM_INFO::Build_pdom_tree(), Clone_bb(), DOM_INFO::Compute_dom_tree(), generate_zones(), LMV_CFG_ADAPTOR::Get_cloned_bb(), BB_NODE_SET::id2bb(), BB_NODE_SET_ITER::Id2bb(), reconstruct_CFG(), and zone_is_clonable().
Definition at line 4143 of file opt_cfg.cxx.
References BB_ENTRY, BB_REGIONSTART, BB_NODE::Entrywn(), FOR_ALL_NODE, Init, Is_True, BB_NODE::Kind(), OPC_FUNC_ENTRY, BB_NODE::Regioninfo(), and WN_opcode().
Referenced by OPT_TAIL::Entry_is_well_behaved().
Definition at line 4170 of file opt_cfg.cxx.
References _bb_vec, _last_bb, Alloc_bb_id(), BB_GOTO, BB_NODE, BB_REGIONEXIT, Connect_predsucc(), CXX_NEW, DisConnect_predsucc(), FOR_ALL_ELEM, BB_NODE::Id(), Init, CHAIN_NODE::Insert_After(), Is_True, BB_NODE::Kind(), Mem_pool(), BB_NODE::Set_firststmt(), BB_NODE::Set_id(), BB_NODE::Set_kind(), BB_NODE::Set_labnam(), BB_NODE::Set_laststmt(), BB_NODE::Set_pred(), BB_NODE::Set_succ(), BB_NODE::Succ(), WN_next(), and WN_prev().
Referenced by OPT_TAIL::Create_top_label(), and RVI::Get_bb_local_attributes().
Definition at line 3731 of file opt_cfg.cxx.
References BB_DOEND, BB_DOHEAD, BB_DOSTART, BB_DOSTEP, BB_DOTAIL, BB_ENTRY, BB_EXIT, BB_GOTO, BB_IO, BB_LOGIF, BB_REGIONEXIT, BB_REGIONSTART, BB_REPEATBODY, BB_REPEATEND, BB_SUMMARY, BB_UNKNOWN, BB_VARGOTO, BB_WHILEEND, BB_LOOP::Body(), BOOL, EC_Unimplemented, BB_LOOP::End(), ErrMsg(), Fake_entry_bb(), FALSE, FmtAssert, BB_NODE::Id(), BB_NODE::Ifinfo(), BB_NODE::Kind(), BB_NODE::Loop(), Lower_fully(), BB_LOOP::Merge(), BB_IFINFO::Merge(), Remove_region_entry(), Remove_region_exit(), BB_NODE::Reset_ifmerge(), BB_NODE::Set_ifinfo(), BB_NODE::Set_ioinfo(), BB_NODE::Set_kind(), BB_NODE::Set_loop(), BB_NODE::Set_switchinfo(), BB_LOOP::Start(), BB_LOOP::Step(), and TRUE.
Referenced by DCE::Check_unreachable_blocks(), IVR::Convert_all_ivs(), Process_not_reached(), DCE::Replace_condbr_with_uncondbr(), and DCE::Unreachable_code_elim().
Definition at line 457 of file opt_cfg.h.
References _loops.
Referenced by Analyze_loops(), Compute_loop_depth(), Invalidate_loops(), print_nested_loops(), and PrintVis().
| BOOL CFG::Loops_valid | ( | ) | const [inline] |
Definition at line 458 of file opt_cfg.h.
References _loops_valid.
Referenced by Analyze_loops(), and Invalidate_loops().
Definition at line 460 of file opt_cfg.h.
References _loops_valid.
Referenced by Analyze_loops(), and Invalidate_loops().
Definition at line 464 of file opt_cfg.h.
References _last_stmt_id, and INVALID_STMT_ID.
Referenced by ETABLE::Perform_LPRE_optimization(), ETABLE::Perform_PRE_optimization(), and ETABLE::Perform_VNFRE_optimization().
Definition at line 465 of file opt_cfg.h.
References _last_stmt_id.
Referenced by VALNUM_FRE::_collect_all_real_occurrences(), VALNUM_FRE::_save_to_temp(), CSE::Save_hoisted_occurrence(), CSE::Save_real_occurrence(), CSE::Save_shrunk_lr_def(), SPRE_insert_load_to_preg(), and EXP_WORKLST::SPRE_perform_insert_delete().
Definition at line 4428 of file opt_cfg.cxx.
References _loops, FALSE, invalidate_loops(), Loops(), Loops_valid(), and Set_loops_valid().
Referenced by CFG_transformation(), DCE::Dead_store_elim(), COMP_UNIT::Do_iv_recognition(), LOOP_MULTIVER::Perform_loop_multiversioning(), Remove_critical_edge(), and DCE::Unreachable_code_elim().
Definition at line 469 of file opt_cfg.h.
References CURRENT_SYMTAB, idx, and New_LABEL().
Referenced by Add_bb_to_edge(), DCE::Add_goto_stmt(), BB_NODE::Add_label(), Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_if_stmt(), Add_one_while_do_stmt(), EMITTER::Can_raise_to_scf(), DCE::Check_for_label(), Create_label_stmt(), OPT_TAIL::Create_top_label(), and DCE::Update_branch_to_bb_labels().
Definition at line 476 of file opt_cfg.h.
References _cur_loop_depth.
Referenced by Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_while_do_stmt(), Create_blank_loop_info(), Create_loop_info(), Lower_do_loop(), Lower_do_while(), and Lower_while_do().
Definition at line 477 of file opt_cfg.h.
References _cur_loop_depth.
Referenced by Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_while_do_stmt(), Create(), Lower_do_loop(), Lower_do_while(), and Lower_while_do().
Definition at line 569 of file opt_cfg.cxx.
References BB_NODE::Firststmt(), Init_stmtlist(), BB_NODE::Set_firststmt(), WN_next(), and WN_prev().
Referenced by OPT_TAIL::Create_top_label().
Definition at line 585 of file opt_cfg.cxx.
References BB_REGIONSTART, BB_NODE::Firststmt(), Init_stmtlist(), Is_True, BB_NODE::Kind(), BB_NODE::Kind_name(), BB_NODE::Laststmt(), OPC_PRAGMA, OPC_VCALL, OPC_XPRAGMA, OPR_GOTO, BB_NODE::Set_laststmt(), WN_next(), WN_opcode(), WN_operator(), and WN_prev().
Referenced by Add_one_compgoto_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_stmt(), and Copy_xpragmas_into().
Definition at line 486 of file opt_cfg.h.
References _lower_fully.
Referenced by Add_one_stmt(), Analyze_loops(), Change_block_kind(), DCE::Check_required_doend(), DCE::Check_required_repeatend(), DCE::Check_required_whileend(), DCE::Check_unreachable_blocks(), DCE::Find_assumed_goto_blocks(), DCE::Insert_required_gotos(), Lower_do_loop(), Lower_do_while(), Lower_if_stmt(), Lower_while_do(), DCE::Mark_branch_related_live(), DCE::Need_condbr_target_label(), and OPT_FEEDBACK::OPT_FEEDBACK().
Definition at line 488 of file opt_cfg.h.
References _calls_break.
Referenced by DCE::Add_goto_stmt(), Add_one_io_stmt(), Add_one_stmt(), and OPT_FEEDBACK::OPT_FEEDBACK().
Definition at line 491 of file opt_cfg.h.
References _rvi_break_stmt.
Referenced by RVI::Perform_phase1(), and RVI::Perform_phase2().
| OPT_FEEDBACK* CFG::Feedback | ( | void | ) | const [inline] |
Definition at line 493 of file opt_cfg.h.
References _feedback.
Referenced by Add_bb_to_edge(), ML_WHIRL_EMITTER::Build_loop_info(), clone_zones(), IVR::Convert_all_ivs(), Delete_bb(), Gen_stmt_wn(), Pre_Optimizer(), Process_not_reached(), Raise_doloop_stmt(), Raise_dowhile_stmt(), EMITTER::Raise_func_entry(), Raise_if_stmt(), Raise_whiledo_stmt_to_doloop(), Raise_whiledo_stmt_to_whileloop(), reconstruct_CFG(), Remove_bb(), DCE::Replace_condbr_with_uncondbr(), DCE::Replace_control_dep_succs(), STR_RED::Update_happens_rarely_enough(), and DCE::Update_predecessor_lists().
| void CFG::Set_feedback | ( | OPT_FEEDBACK * | fb | ) | [inline] |
Definition at line 499 of file opt_cfg.h.
References _bb_region, and STACK< T >::Push().
Referenced by Add_one_region(), and Ident_mp_regions().
Definition at line 500 of file opt_cfg.h.
References _bb_region, and STACK< T >::Pop().
Referenced by Add_one_region(), and Ident_mp_regions().
Definition at line 501 of file opt_cfg.h.
References _bb_region, and STACK< T >::Top().
Referenced by Add_one_region(), and Add_one_stmt().
Definition at line 502 of file opt_cfg.h.
References _bb_region, and STACK< T >::Clear().
Referenced by Ident_mp_regions().
Definition at line 503 of file opt_cfg.h.
References _bb_region, and STACK< T >::Is_Empty().
Referenced by Add_one_region(), and Add_one_stmt().
Definition at line 506 of file opt_cfg.h.
References _mp_type, and STACK< T >::Push().
Referenced by Add_one_region(), and Ident_mp_regions().
Definition at line 507 of file opt_cfg.h.
References _mp_rid.
Referenced by Add_one_region(), and Ident_mp_regions().
Definition at line 508 of file opt_cfg.h.
References _mp_type, and STACK< T >::Pop().
Referenced by Add_one_region(), and Ident_mp_regions().
Definition at line 509 of file opt_cfg.h.
References _mp_rid.
Referenced by Add_one_region(), and Ident_mp_regions().
Definition at line 510 of file opt_cfg.h.
References _mp_type, and STACK< T >::Top().
Referenced by Add_one_do_loop_stmt(), and Inside_mp_do().
Definition at line 512 of file opt_cfg.h.
References _mp_type, and STACK< T >::Is_Empty().
Referenced by Ident_mp_regions(), and Inside_mp_do().
Definition at line 513 of file opt_cfg.h.
References _mp_type, and STACK< T >::Clear().
Referenced by Ident_mp_regions().
Definition at line 516 of file opt_cfg.h.
References MP_REGION, NULL_mp_type(), and Top_mp_type().
Referenced by Add_one_do_loop_stmt(), and New_bb().
Definition at line 538 of file opt_cfg.h.
References _rid.
Referenced by Add_one_region(), Add_one_stmt(), Create(), OPT_STAB::Generate_mu_and_chi_list(), PRUNE_BOUND::PRUNE_BOUND(), PRUNE_BOUND::Prune_boundary_sets(), and PRUNE_BOUND::REGION_remove_from_bound().
| REGION_LEVEL CFG::Rgn_level | ( | void | ) | const [inline] |
Definition at line 540 of file opt_cfg.h.
References _rgn_level.
Referenced by Add_one_region(), SSA::Collect_defs_bb(), SSA::Find_zero_versions(), Gen_stmt_wn(), DSE::Propagate_vsym_bb(), and Raise_region_stmt().
Definition at line 542 of file opt_cfg.h.
References _has_regions, and TRUE.
Referenced by Add_one_region().
Definition at line 543 of file opt_cfg.h.
References _has_regions.
Referenced by DCE::DCE(), and DCE::Update_region_information().
Definition at line 550 of file opt_cfg.h.
References _label_map, MAP::Get_val(), and POINTER.
Referenced by Add_one_compgoto_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_stmt(), DCE::Branch_target_block(), EXC_SCOPE_TRY_ITER::EXC_SCOPE_TRY_ITER(), DCE::Mark_region_exits_live(), and OPT_FEEDBACK::OPT_FEEDBACK().
Definition at line 554 of file opt_cfg.h.
References _label_map, MAP::Add_map(), and POINTER.
Referenced by Add_bb_to_edge(), DCE::Add_goto_stmt(), BB_NODE::Add_label(), Add_one_compgoto_stmt(), Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_if_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_stmt(), Add_one_while_do_stmt(), DCE::Check_for_label(), Create_label_stmt(), OPT_TAIL::Create_top_label(), Process_entry(), and DCE::Update_branch_to_bb_labels().
Definition at line 3529 of file opt_cfg.cxx.
References BB_NODE::Add_label_stmtrep(), Alloc_label(), Append_label_map(), BB_NODE::Append_pred(), BB_NODE::Append_stmtrep(), BB_NODE::Append_succ(), BB_ENTRY, BB_GOTO, BB_REGIONSTART, BB_NODE::Branch_stmtrep(), BB_LIST::Contains(), Create_and_allocate_bb(), CXX_NEW, Feedback(), fprintf(), BB_NODE::Id(), STMTREP::Init_Goto(), STMTREP::Init_Label(), CHAIN_NODE::Insert_After(), CHAIN_NODE::Insert_Before(), INT32, Is_True, BB_NODE::Kind(), BB_NODE::Label_stmtrep(), BB_NODE::Labnam(), Mem_pool(), new_label, CHAIN_NODE::Next(), STMTREP::Op(), OPC_GOTO, OPC_LABEL, OPCODE_operator(), STMTREP::Opr(), OPR_COMPGOTO, OPR_FALSEBR, OPR_TRUEBR, BB_NODE::Pred(), CHAIN_NODE::Prev(), BB_NODE::Replace_pred(), BB_NODE::Replace_succ(), STMTREP::Set_label_number(), BB_NODE::Set_switchcase(), BB_NODE::Set_switchdefault(), OPT_FEEDBACK::Split_edge(), BB_NODE::Switchcase(), BB_NODE::Switchdefault(), BB_NODE::Switchentries(), TFile, and Trace().
Referenced by Remove_critical_edge().
Definition at line 5190 of file opt_cfg.cxx.
References Analyze_loops(), and BB_NODE::Innermost().
Referenced by CODEMAP::Canonicalize_compare(), STR_RED::In_same_or_lower_nesting(), STR_RED::Is_const_or_loop_invar(), Is_loop_entry_bb(), LFTR::Lftr_comparison(), STR_RED::Local_autoaggstr_reduction_threshold(), and LFTR::Replace_comparison().
| BB_NODE * CFG::Find_enclosing_region_bb | ( | BB_NODE * | bb, | |
| WN_PRAGMA_ID | region_pragma | |||
| ) |
Definition at line 5202 of file opt_cfg.cxx.
References BB_REGIONSTART, BB_NODE::Firststmt(), FOR_ALL_ELEM, FOR_ALL_NODE, BB_NODE::Idom(), Init, BB_NODE::Kind(), BB_NODE::Laststmt(), CHAIN_NODE::Next(), STMTREP::Op(), OPC_PRAGMA, STMTREP::Orig_wn(), BB_REGION::Region_end(), BB_REGION::Region_start(), BB_NODE::Regioninfo(), BB_NODE::Stmtlist(), wn, WN_opcode(), and WN_pragma().
Referenced by Is_outermost_loop_in_parallel_region().
| BOOL CFG::Is_outermost_loop_in_parallel_region | ( | BB_LOOP * | loop, | |
| WN_PRAGMA_ID | pragma_id | |||
| ) |
Definition at line 5310 of file opt_cfg.cxx.
References Analyze_loops(), BB_NODE::Dominates_strictly(), BB_LOOP::End(), FALSE, Find_enclosing_region_bb(), BB_LOOP::Parent(), and TRUE.
Referenced by IVR::Process_one_loop().
Definition at line 3664 of file opt_cfg.cxx.
References _entry_vec, FOR_ALL_NODE, i, Init, INT, Is_Trace, DYN_ARRAY< T >::Lastidx(), Prop_entry(), BB_NODE::Reset_dforder(), BB_NODE::Reset_reached(), TFile, and Trace().
Referenced by Process_not_reached(), and DCE::Unreachable_code_elim().
| void CFG::Connect_agotos | ( | ) |
Definition at line 3200 of file opt_cfg.cxx.
References _agoto_pred_vec, _agoto_succ_vec, Connect_predsucc(), fprintf(), i, INT, DYN_ARRAY< T >::Lastidx(), TFile, and Trace().
Referenced by Create().
Definition at line 3231 of file opt_cfg.cxx.
References _agoto_pred_vec, DYN_ARRAY< T >::Decidx(), FALSE, idx, Is_True, DYN_ARRAY< T >::Lastidx(), and mUINT32.
Referenced by DCE::Check_required_agoto().
| INT32 CFG::Agoto_succ_entries | ( | ) |
Definition at line 3250 of file opt_cfg.cxx.
References _agoto_succ_vec, and DYN_ARRAY< T >::Elements().
Referenced by DCE::Check_required_agoto().
Definition at line 3260 of file opt_cfg.cxx.
References _agoto_succ_vec, Is_True, and DYN_ARRAY< T >::Lastidx().
Referenced by DCE::Check_required_agoto().
connect
connect
Definition at line 3273 of file opt_cfg.cxx.
References _entry_bb, _entry_vec, _exit_bb, _exit_vec, _fake_entry_bb, _fake_exit_bb, _notreach_vec, BB_ENTRY, BB_EXIT, Connect_predsucc(), Fake_entry_bb(), Fake_exit_bb(), FALSE, Find_exit_blocks(), i, INT, Is_Trace, Is_True, DYN_ARRAY< T >::Lastidx(), New_bb(), Process_no_exit(), Process_not_reached(), BB_NODE::Set_willexit(), TFile, Trace(), and BB_NODE::Willexit().
Referenced by Create(), and Invalidate_and_update_aux_info().
Definition at line 4118 of file opt_cfg.cxx.
References Fake_entry_bb(), Fake_exit_bb(), FOR_ALL_ELEM, Init, Mem_pool(), BB_NODE::Remove_pred(), and BB_NODE::Remove_succ().
Referenced by Invalidate_and_update_aux_info(), RVI::Perform_phase1(), RVI::Perform_phase2(), and Pre_Optimizer().
whirl
Definition at line 5345 of file opt_cfg.cxx.
References _dfs_vec, _dfs_vec_sz, _dpo_vec, _dpo_vec_sz, _pdo_vec, _pdo_vec_sz, _po_vec, _po_vec_sz, Compute_control_dependence(), Compute_dom_frontier(), Compute_dom_tree(), CXX_DELETE_ARRAY, Fake_entry_bb(), Fake_exit_bb(), FALSE, Mem_pool(), Process_multi_entryexit(), Remove_fake_entryexit_arcs(), BB_NODE::Reset_reached(), and TRUE.
Referenced by COMP_UNIT::Do_dead_code_elim(), LOOP_MULTIVER::Perform_loop_multiversioning(), reconstruct_CFG(), and Remove_critical_edge().
| INT CFG::Remove_critical_edge | ( | ) |
Definition at line 5392 of file opt_cfg.cxx.
References Add_bb_to_edge(), Analyze_loops(), BB_GOTO, BB_REGIONSTART, BB_NODE::Branch_stmtrep(), CFG_DUMP_FLAG, CXX_NEW, FOR_ALL_ELEM, FOR_ALL_NODE, Init, INT, Invalidate_and_update_aux_info(), Invalidate_loops(), Is_backedge(), BB_NODE::Kind(), BB_NODE::Last_stmtrep(), BB_NODE::Laststmt(), SLIST_NODE::Len(), Loc_pool(), Mem_pool(), STMTREP::Op(), OPC_REGION, STMTREP::Opr(), OPR_AGOTO, OPT_POOL_Pop, OPT_POOL_Push, BB_NODE::Pred(), BB_NODE::Reached(), BB_NODE::Set_phi_list(), BB_NODE::Succ(), WN_opcode(), and WOPT_Enable_Backedge_Placement.
Referenced by Pre_Optimizer().
Definition at line 4246 of file opt_cfg.cxx.
References Exit_bb(), FOR_ALL_NODE, get_pred_first_vec(), Init, and BB_NODE::Reset_dforder().
Definition at line 4290 of file opt_cfg.cxx.
References _dfs_vec, _dfs_vec_sz, _po_vec, _po_vec_sz, CXX_DELETE_ARRAY, CXX_NEW_ARRAY, Entry_bb(), Fill_DFS_vec(), FOR_ALL_ELEM, FOR_ALL_NODE, Init, INT32, Last_bb_id(), Mem_pool(), BB_NODE::Reset_dforder(), and BB_NODE::Set_rpo_id().
Referenced by DFSBB_ITER::DFSBB_ITER(), RVI::Perform_phase1(), RVI::Perform_phase2(), and Po_vec().
Definition at line 621 of file opt_cfg.h.
References _dfs_vec_sz.
Referenced by DFSBB_ITER::DFSBB_ITER(), RVI::Perform_phase1(), and RVI::Perform_phase2().
Definition at line 4322 of file opt_cfg.cxx.
References _dfs_vec, _po_vec, CXX_DELETE_ARRAY, Dfs_vec(), Mem_pool(), and void.
Referenced by POBB_ITER::POBB_ITER().
Definition at line 624 of file opt_cfg.h.
References _po_vec_sz.
Referenced by POBB_ITER::POBB_ITER().
Definition at line 4379 of file opt_cfg.cxx.
References _dpo_vec, _dpo_vec_sz, CXX_NEW_ARRAY, Entry_bb(), Init_dpo_vec(), INT, Last_bb_id(), and Mem_pool().
Referenced by DPOBB_ITER::DPOBB_ITER(), ETABLE::Perform_LPRE_optimization(), ETABLE::Perform_PRE_optimization(), and ETABLE::Perform_VNFRE_optimization().
Definition at line 629 of file opt_cfg.h.
References _dpo_vec_sz.
Referenced by DPOBB_ITER::DPOBB_ITER().
Definition at line 630 of file opt_cfg.h.
References _dpo_vec.
Referenced by VALNUM_FRE::_insert_valnum_phi(), and EXP_WORKLST::Insert_exp_phi().
Definition at line 4391 of file opt_cfg.cxx.
References _pdo_vec, _pdo_vec_sz, CXX_NEW_ARRAY, Exit_bb(), Init_pdo_vec(), INT, Last_bb_id(), and Mem_pool().
Referenced by DPOBB_ITER::DPOBB_ITER(), and ETABLE::Perform_SPRE_optimization().
Definition at line 634 of file opt_cfg.h.
References _pdo_vec_sz.
Referenced by DPOBB_ITER::DPOBB_ITER().
Definition at line 635 of file opt_cfg.h.
References _pdo_vec.
Referenced by EXP_WORKLST::SPRE_create_iphi_succ().
Definition at line 5515 of file opt_cfg.cxx.
References BOOL, CFG_DUMP_FLAG, Loc_pool(), OPT_POOL_Pop, OPT_POOL_Push, result, TRUE, Verify_wn(), WN_MAP_Create, WN_MAP_Delete, and WOPT_Enable_Verify.
Referenced by Pre_Optimizer().
Definition at line 5571 of file opt_cfg.cxx.
References CFG_DUMP_FLAG, BB_NODE::Firststmt(), FmtAssert, FOR_ALL_ELEM, BB_NODE::Id(), Init, BB_NODE::Laststmt(), MEM_local_pool, OPT_POOL_Pop, OPT_POOL_Push, TRUE, wn, WN_MAP32_Create, WN_MAP32_Get, WN_MAP32_Set, WN_MAP_Delete, and WOPT_Enable_Verify.
Referenced by Pre_Optimizer().
Definition at line 5151 of file opt_cfg.cxx.
References _last_bb_id, _loops, _non_true_body_set, BB_NODE_SET::Alloc_size(), BBNS_EMPTY, bs_PBPB, Compute_loop_depth(), Compute_true_loop_body_set(), CXX_NEW, Entry_bb(), Find_real_loops(), First_bb(), Fix_SCF_for_mainopt(), BB_LOOP::Header(), Ident_loop(), Is_True, Last_bb(), BB_NODE::Loop(), Loops(), Loops_valid(), Lower_fully(), Mem_pool(), CHAIN_NODE::Next(), print_bb_loopinfo(), print_nested_loops(), Set_loops_valid(), TFile, Trace(), TRUE, Update_loops_for_preopt(), and verify_loops.
Referenced by CFG_transformation(), COMP_UNIT::Create_mainopt_res(), COMP_UNIT::Do_iv_recognition(), ML_WHIRL_EMITTER::Emit(), EMITTER::Emit(), Find_innermost_loop_contains(), LOOP_MULTIVER::Identify_candidates(), Is_outermost_loop_in_parallel_region(), LOOP_MULTIVER::Perform_loop_multiversioning(), ETABLE::Perform_PRE_optimization(), Pre_Optimizer(), and Remove_critical_edge().
Definition at line 5443 of file opt_cfg.cxx.
References BB_ENTRY, BB_REGIONSTART, Entry_bb(), BB_NODE::Entrywn(), Fake_entry_bb(), FOR_ALL_ELEM, Init, Is_True, BB_NODE::Kind(), OPC_FUNC_ENTRY, OPR_LABEL, BB_NODE::Regioninfo(), BB_NODE::Succ(), WN_Label_Is_Handler_Begin, WN_opcode(), and WN_operator().
Referenced by ML_WHIRL_EMITTER::Emit(), and RVI_EMIT::RVI_EMIT().
Definition at line 5751 of file opt_cfg.cxx.
References BB_NODE::Branch_stmtrep(), FALSE, Is_True, CHAIN_NODE::Next(), BB_LIST::Node(), STMTREP::Op(), OPC_GOTO, CHAIN_NODE::Prev(), BB_NODE::Succ(), and TRUE.
Referenced by Delete_empty_BB().
| void CFG::Delete_empty_BB | ( | ) |
Definition at line 5777 of file opt_cfg.cxx.
References _mem_pool, BB_NODE::Add_label(), BB_NODE::Add_label_stmtrep(), BB_NODE::Append_pred(), BB_NODE::Append_succ(), BB_NODE::Branch_stmtrep(), Fall_through(), First_bb(), fprintf(), BB_NODE::Id(), is_delete_bb_candidates(), BB_NODE::Is_empty(), LABEL_addr_saved(), STMTREP::Label_number(), BB_NODE::Label_stmtrep(), BB_NODE::Labnam(), SLIST_NODE::Len(), CHAIN_NODE::Next(), BB_LIST::Node(), STMTREP::Op(), OPC_FALSEBR, OPC_GOTO, OPC_TRUEBR, BB_NODE::Pred(), CHAIN_NODE::Prev(), BB_NODE::Remove_label_stmtrep(), BB_NODE::Remove_pred(), BB_NODE::Remove_stmtrep(), BB_NODE::Remove_succ(), STMTREP::Set_label_number(), BB_NODE::Set_next(), BB_NODE::Set_prev(), BB_NODE::Succ(), TFile, and Trace().
Referenced by ML_WHIRL_EMITTER::Emit().
Definition at line 5852 of file opt_cfg.cxx.
References BB_NODE::Append_stmtrep(), CF_DONT_PROP, CF_IS_ZERO_VERSION, BB_NODE::Clear(), BB_NODE::Clonable(), STMTREP::Clone(), CXX_NEW, CODEMAP::Fix_zero_version(), FOR_ALL_ELEM, FOR_ALL_NODE, Get_bb(), Htable(), Init, INT, CODEREP::Is_flag_set(), Is_True, BB_NODE::Kind(), BB_NODE::Linenum(), PHI_NODE::Live(), Mem_pool(), OPC_LABEL, PHI_NODE::OPND(), BB_NODE::Phi_list(), CODEREP::Reset_flag(), BB_NODE::Set_id(), BB_NODE::Set_kind(), BB_NODE::Set_labnam(), BB_NODE::Set_linenum(), BB_NODE::Set_phi_list(), PHI_NODE::Size(), BB_NODE::Stmtlist(), and TRUE.
Referenced by clone_zones(), LMV_clone_block(), and LMV_clone_loop().
Definition at line 656 of file opt_cfg.h.
References _bb_vec, Alloc_bb_id(), Create_bb(), BB_NODE::Id(), and BB_NODE::Set_id().
Referenced by Add_bb_to_edge(), clone_zones(), LMV_clone_block(), LMV_create_alike_block(), LMV_gen_precondioning_stuff(), and reconstruct_CFG().
Definition at line 847 of file opt_lmv.cxx.
References BOOL, br, BB_NODE::Branch_stmtrep(), BB_NODE::Clonable(), count, FALSE, FOR_ALL_ELEM, fprintf(), BB_LOOP::Header(), BB_NODE::Id(), Init, INT, Is_backedge(), iter, BB_NODE_SET::MemberP(), BB_LOOP::Merge(), CHAIN_NODE::Next(), NULL, STMTREP::Op(), OPC_GOTO, BB_NODE::Pred(), BB_LOOP::Preheader(), BB_NODE_SET::Size(), BB_NODE::Succ(), TFile, TRUE, and BB_LOOP::True_body_set().
Referenced by LOOP_MULTIVER::Not_applicable().
| void CFG::LMV_clone_loop | ( | LMV_CFG_ADAPTOR * | adaptor | ) |
Definition at line 1453 of file opt_lmv.cxx.
References BB_NODE::Add_label(), BB_GOTO, Clone_bb(), fprintf(), BB_LOOP::Header(), BB_NODE::Id(), CHAIN_NODE::Insert_After(), CHAIN_NODE::Insert_Before(), BB_NODE::Labnam(), LMV_clone_BB_IFINFO(), LMV_clone_BB_LOOP(), LMV_clone_loop_body(), LMV_clone_pred_succ_relationship(), LMV_create_alike_block(), LMV_gen_precondioning_stuff(), LMV_update_internal_labels(), BB_LOOP::Merge(), LMV_CFG_ADAPTOR::Pred_next_lst_header(), LMV_CFG_ADAPTOR::Pred_next_lst_tail(), BB_LOOP::Preheader(), LMV_CFG_ADAPTOR::Set_cloned_loop(), LMV_CFG_ADAPTOR::Set_cloned_loop_merge(), LMV_CFG_ADAPTOR::Set_cloned_loop_preheader(), BB_NODE::Set_flag(), LMV_CFG_ADAPTOR::Set_pred_next_lst_header(), LMV_CFG_ADAPTOR::Set_pred_next_lst_tail(), LMV_CFG_ADAPTOR::Src_loop(), TFile, and LMV_CFG_ADAPTOR::Trace().
Referenced by LOOP_MULTIVER::Perform_transformation().
Definition at line 1529 of file opt_cfg.cxx.
References BOOL, FALSE, FmtAssert, If_conv_criteria_met(), OPC_BLOCK, OPCODE_operator(), OPR_IF, Screen_cand(), TRUE, WN_else, WN_first(), WN_if_test, WN_opcode(), and WN_then.
| BOOL CFG::If_conv_criteria_met | ( | WN * | wn, | |
| WN * | else_wn, | |||
| WN * | then_wn, | |||
| BOOL | empty_else, | |||
| BOOL | empty_then | |||
| ) |
Definition at line 1562 of file opt_cfg.cxx.
References _current_bb, FALSE, BB_NODE::Firststmt(), Instrumentation_Enabled, Is_Target_ISA_M4Plus, BB_NODE::Laststmt(), OPERATOR_is_store(), OPR_LABEL, OPR_SELECT, Same_store_target(), TRUE, WN_first(), WN_last(), WN_next(), WN_operator(), WOPT_Enable_If_Conv_Limit, and WOPT_Enable_Simple_If_Conv.
Referenced by Conv_to_select(), If_convertible_cond(), and Lower_if_stmt().
Definition at line 1439 of file opt_cfg.cxx.
References _current_bb, _opt_stab, DevWarn, FALSE, Has_iload_with_same_addr_expr(), OPT_STAB::Is_volatile(), BB_NODE::Laststmt(), MTYPE_is_float, MTYPE_M, OPC_I4I4ILOAD, OPCODE_Can_Be_Speculative(), OPERATOR_is_compare(), OPR_ISTBITS, OPR_ISTORE, OPR_MSTORE, OPR_STBITS, OPR_STID, Same_addr_expr(), SCLASS_FORMAL_REF, OPT_STAB::St(), ST_sclass, TRUE, TY_is_volatile, WN_aux(), WN_desc(), WN_first(), WN_if_test, WN_kid0(), WN_kid1(), WN_operator(), WN_prev(), WN_ty(), and WOPT_Enable_If_Conv_For_Istore.
Referenced by Conv_to_select(), If_convertible_cond(), and Lower_if_stmt().
Definition at line 1646 of file opt_cfg.cxx.
References _opt_stab, OPT_STAB::Alias_classification(), BOOL, Copy_addr_expr(), ALIAS_CLASSIFICATION::Copy_alias_class(), FALSE, If_conv_criteria_met(), INT, Is_simple_expr(), load(), MTYPE_byte_size, Mtype_comparison(), Mtype_TransferSign(), OPC_BLOCK, OPR_ILOAD, OPR_STBITS, OPR_STID, OPTIMISTIC_AC_ID, Screen_cand(), store(), TRUE, TY_pointed, WN_aux(), WN_CopyNode(), WN_CreateEval, WN_CreateIload, WN_desc(), WN_else, WN_field_id(), WN_first(), WN_Get_Linenum(), WN_if_test, WN_kid0(), WN_kid1(), WN_Ldid(), WN_MAP32_Get, WN_MAP32_Set, WN_MAP_ALIAS_CLASS, WN_map_id(), WN_offset(), WN_opcode(), WN_operator(), WN_rtype(), WN_Select, WN_set_aux(), WN_Set_Linenum(), WN_set_map_id(), WN_then, WN_ty(), and WOPT_Enable_If_Conv_Limit.
Referenced by Lower_if_stmt().
friend class EXITBB_ITER [friend] |
BOOL CFG::_trace [private] |
DYN_ARRAY<BB_NODE*> CFG::_bb_vec [private] |
Definition at line 165 of file opt_cfg.h.
Referenced by Alloc_bb_id(), Append_bb(), CFG(), Create_and_allocate_bb(), Get_bb(), Remove_bb(), Split_bb_with_wns(), Validate(), and ~CFG().
DYN_ARRAY<BB_NODE*> CFG::_entry_vec [private] |
Definition at line 166 of file opt_cfg.h.
Referenced by Add_altentry(), CFG(), Find_not_reached(), Process_multi_entryexit(), Process_no_exit(), and ~CFG().
DYN_ARRAY<BB_NODE*> CFG::_exit_vec [private] |
Definition at line 167 of file opt_cfg.h.
Referenced by Add_earlyexit(), CFG(), EXITBB_ITER::Cur_exit_bb(), Find_exit_blocks(), EXITBB_ITER::Is_Empty(), Process_multi_entryexit(), Process_no_exit(), Remove_bb(), and ~CFG().
DYN_ARRAY<BB_NODE*> CFG::_notreach_vec [private] |
Definition at line 168 of file opt_cfg.h.
Referenced by Add_notreach(), CFG(), Process_multi_entryexit(), Process_not_reached(), and ~CFG().
DYN_ARRAY<BB_NODE*> CFG::_agoto_pred_vec [private] |
Definition at line 169 of file opt_cfg.h.
Referenced by Add_one_stmt(), CFG(), Connect_agotos(), Remove_agoto_pred(), and ~CFG().
DYN_ARRAY<BB_NODE*> CFG::_agoto_succ_vec [private] |
Definition at line 170 of file opt_cfg.h.
Referenced by Add_one_stmt(), Agoto_succ_bb(), Agoto_succ_entries(), CFG(), Connect_agotos(), and ~CFG().
BB_NODE** CFG::_dfs_vec [private] |
Definition at line 172 of file opt_cfg.h.
Referenced by CFG(), Dfs_vec(), Fill_DFS_vec(), Invalidate_and_update_aux_info(), and Po_vec().
INT32 CFG::_dfs_vec_sz [private] |
Definition at line 173 of file opt_cfg.h.
Referenced by CFG(), Dfs_vec(), Dfs_vec_sz(), Fill_DFS_vec(), and Invalidate_and_update_aux_info().
BB_NODE** CFG::_po_vec [private] |
Definition at line 174 of file opt_cfg.h.
Referenced by CFG(), Dfs_vec(), Fill_DFS_vec(), Invalidate_and_update_aux_info(), Po_Bb(), and Po_vec().
INT32 CFG::_po_vec_sz [private] |
Definition at line 175 of file opt_cfg.h.
Referenced by CFG(), Dfs_vec(), Fill_DFS_vec(), Invalidate_and_update_aux_info(), and Po_vec_sz().
BB_NODE** CFG::_dpo_vec [private] |
Definition at line 176 of file opt_cfg.h.
Referenced by CFG(), Dpo_Bb(), Dpo_vec(), Init_dpo_vec(), and Invalidate_and_update_aux_info().
INT32 CFG::_dpo_vec_sz [private] |
Definition at line 177 of file opt_cfg.h.
Referenced by CFG(), Dpo_vec(), Dpo_vec_sz(), and Invalidate_and_update_aux_info().
BB_NODE** CFG::_pdo_vec [private] |
Definition at line 178 of file opt_cfg.h.
Referenced by CFG(), Init_pdo_vec(), Invalidate_and_update_aux_info(), Pdo_Bb(), and Pdo_vec().
INT32 CFG::_pdo_vec_sz [private] |
Definition at line 179 of file opt_cfg.h.
Referenced by CFG(), Invalidate_and_update_aux_info(), Pdo_vec(), and Pdo_vec_sz().
MEM_POOL* CFG::_mem_pool [private] |
Definition at line 180 of file opt_cfg.h.
Referenced by Add_one_compgoto_stmt(), Add_one_do_loop_stmt(), Add_one_do_while_stmt(), Add_one_if_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_while_do_stmt(), CFG(), Compute_control_dependence(), Compute_dom_frontier(), Connect_predsucc(), Create_bb(), Delete_bb(), Delete_empty_BB(), DisConnect_predsucc(), Lower_do_loop(), Lower_do_while(), Lower_while_do(), and Mem_pool().
MEM_POOL* CFG::_loc_pool [private] |
BB_NODE* CFG::_entry_bb [private] |
Definition at line 182 of file opt_cfg.h.
Referenced by CFG(), Entry_bb(), Find_exit_blocks(), and Process_multi_entryexit().
BB_NODE* CFG::_exit_bb [private] |
Definition at line 183 of file opt_cfg.h.
Referenced by CFG(), Exit_bb(), and Process_multi_entryexit().
BB_NODE* CFG::_first_bb [private] |
Definition at line 184 of file opt_cfg.h.
Referenced by CFG(), Create(), First_bb(), and Remove_bb().
BB_NODE* CFG::_last_bb [private] |
Definition at line 185 of file opt_cfg.h.
Referenced by Append_bb(), CFG(), Create(), Last_bb(), Remove_bb(), Set_last_bb(), and Split_bb_with_wns().
BB_NODE* CFG::_fake_entry_bb [private] |
Definition at line 186 of file opt_cfg.h.
Referenced by CFG(), Fake_entry_bb(), Fill_DFS_vec(), and Process_multi_entryexit().
BB_NODE* CFG::_fake_exit_bb [private] |
Definition at line 187 of file opt_cfg.h.
Referenced by CFG(), Fake_exit_bb(), Fill_DFS_vec(), and Process_multi_entryexit().
BB_LOOP* CFG::_loops [private] |
Definition at line 188 of file opt_cfg.h.
Referenced by Analyze_loops(), CFG(), Invalidate_loops(), Loops(), and Set_loops().
BOOL CFG::_loops_valid [private] |
Definition at line 189 of file opt_cfg.h.
Referenced by CFG(), Loops_valid(), and Set_loops_valid().
INT32 CFG::_last_stmt_id [private] |
BB_NODE* CFG::_current_bb [private] |
Definition at line 194 of file opt_cfg.h.
Referenced by Add_one_compgoto_stmt(), Add_one_do_loop_stmt(), Add_one_if_stmt(), Add_one_io_stmt(), Add_one_region(), Add_one_stmt(), Append_bb(), CFG(), Create_conditional(), Create_empty_preheader(), Create_entrytest(), Create_exittest(), If_conv_criteria_met(), Lower_do_loop(), Lower_do_while(), Lower_if_stmt(), New_bb(), Process_entry(), Screen_cand(), and Set_current_bb().
IDTYPE CFG::_first_bb_id [private] |
IDTYPE CFG::_last_bb_id [private] |
Definition at line 196 of file opt_cfg.h.
Referenced by Alloc_bb_id(), Analyze_loops(), CFG(), Compute_true_loop_body_set(), Ident_loop(), Last_bb_id(), Set_loop_bb_set(), Total_bb_count(), and Validate().
MAP* CFG::_label_map [private] |
Definition at line 197 of file opt_cfg.h.
Referenced by Append_label_map(), CFG(), and Get_bb_from_label().
IDTYPE CFG::_orig_last_label [private] |
IDTYPE CFG::_last_label_num [private] |
INT32 CFG::_cur_loop_depth [private] |
Definition at line 200 of file opt_cfg.h.
Referenced by CFG(), Cur_loop_depth(), and Set_cur_loop_depth().
BOOL CFG::_lower_fully [private] |
OPT_STAB* CFG::_opt_stab [private] |
Definition at line 203 of file opt_cfg.h.
Referenced by Conv_to_select(), Create(), Is_simple_expr(), Lower_if_stmt(), and Screen_cand().
CODEMAP* CFG::_htable [private] |
BOOL CFG::_calls_break [private] |
BOOL CFG::_rvi_break_stmt [private] |
Definition at line 206 of file opt_cfg.h.
Referenced by CFG(), Rvi_break_stmt(), and Set_rvi_break_stmt().
OPT_FEEDBACK* CFG::_feedback [private] |
Definition at line 207 of file opt_cfg.h.
Referenced by CFG(), Feedback(), Has_feedback(), and Set_feedback().
STACK<MP_TY> CFG::_mp_type [private] |
Definition at line 208 of file opt_cfg.h.
Referenced by Clear_mp_type(), NULL_mp_type(), Pop_mp_type(), Push_mp_type(), and Top_mp_type().
STACK<RID *> CFG::_mp_rid [private] |
Definition at line 209 of file opt_cfg.h.
Referenced by Clear_mp_rid(), Pop_mp_rid(), Push_mp_rid(), and Top_mp_rid().
STACK<BB_REGION *> CFG::_bb_region [private] |
Definition at line 210 of file opt_cfg.h.
Referenced by Clear_bb_region(), Null_bb_region(), Pop_bb_region(), Push_bb_region(), and Top_bb_region().
REGION_LEVEL CFG::_rgn_level [private] |
Definition at line 216 of file opt_cfg.h.
Referenced by Add_one_region(), CFG(), Create(), and Rgn_level().
BOOL CFG::_has_regions [private] |
Definition at line 217 of file opt_cfg.h.
Referenced by CFG(), Has_regions(), and Set_has_regions().
INT32 CFG::_dohead_cnt [private] |
BB_NODE_SET* CFG::_bb_set [private] |
Definition at line 220 of file opt_cfg.h.
Referenced by CFG(), Loop_itself_is_empty(), and Set_loop_bb_set().
BB_NODE_SET* CFG::_non_true_body_set [private] |
Definition at line 221 of file opt_cfg.h.
Referenced by Analyze_loops(), CFG(), Check_if_it_can_reach_body_first_bb(), and Compute_true_loop_body_set().
1.5.6