#include "bb.h"#include <stack>#include <vector>#include <list>#include "defs.h"#include "cxx_memory.h"#include "gtn_universe.h"#include "gtn_set.h"#include "region_bb_util.h"#include "profile_util.h"#include "tracing.h"#include "ipfec_defs.h"#include "vt_region.h"

Go to the source code of this file.
| void Add_Regional_Cfg_Edge | ( | REGIONAL_CFG_NODE * | pred, | |
| REGIONAL_CFG_NODE * | succ, | |||
| REGION * | rgn | |||
| ) |
Definition at line 555 of file region_bb_util.cxx.
Referenced by Collect_Entry_BBs(), REGION_TREE::Del_Region(), Region_Def_Reach_In(), and Verify_Node().
Definition at line 574 of file region_bb_util.cxx.
Referenced by Collect_Exit_BBs(), REGION_TREE::Del_Region(), Edge_Counter(), RGN_Add_Regional_Cfg_Edge(), RGN_Del_Regional_Cfg_Edge(), and Verify_Node().
| void Del_Regional_Cfg_Edge | ( | REGIONAL_CFG_NODE * | pred, | |
| REGIONAL_CFG_NODE * | succ, | |||
| REGION * | rgn | |||
| ) |
Definition at line 643 of file region_bb_util.cxx.
Referenced by REGION_TREE::Del_Region(), and RGN_Del_Regional_Cfg_Edge().
| INT Edge_Counter | ( | REGIONAL_CFG_NODE * | src, | |
| REGIONAL_CFG_NODE * | dest, | |||
| REGIONAL_CFG * | cfg | |||
| ) |
Definition at line 593 of file region_bb_util.cxx.
References REGIONAL_CFG_MEM::_m, BB_id, REGIONAL_CFG_NODE::BB_Node(), BBLIST_item, Collect_Exit_BBs(), FOR_ALL_BB_SUCCS, fprintf(), Get_Trace(), Home_Region(), INT32, REGION::Is_Contained_By(), REGIONAL_CFG_NODE::Is_Region(), iter, REGIONAL_CFG_NODE::Region_Node(), TFile, TP_A_REGION, and TT_RGN_DETAILED.
Referenced by Del_Regional_Cfg_Edge(), and Verify_Cfg().
Definition at line 93 of file region_bb_util.cxx.
Referenced by Can_Be_Moved(), Cflow_Change_Succ(), CG_LOOP_Optimize(), Clone_Blocks(), PARTITION_GRAPH::Collect_Info(), FAVOR_DELAY_HEUR::Compute_Delay(), FAVOR_DELAY_HEUR::Compute_Heur_Data_For_Inserted_OP(), INTERVAL_PROCESSOR::Construct_Loops(), REGION_TREE::Del_Region(), Delete_BB(), Delete_BB_Contents(), INTERVAL_PROCESSOR::Detect_Loop_Scope(), Edge_Counter(), Find_Execution_Path(), IF_CONVERTOR::Force_If_Convert(), PARTITION_GRAPH::Get_Complementary(), IF_CONVERTOR::Merge_Area(), Merge_With_Pred(), Merge_With_Succ(), OP_has_disjoint_predicate(), OP_has_subset_predicate(), Optimize_Branches(), SCHED_DFLOW_MGR::P_Ready_Moving_Against_These_Path_Kill_Live_Defs(), Record_And_Del_Loop_Region(), Region_Contains_BB(), Resolve_Conditional_Branch(), RGN_Gen_And_Insert_BB_After(), RGN_Gen_And_Insert_BB_Before(), RGN_Gen_And_Insert_Node(), RGN_Remove_BB_And_Edges(), RGN_Unlink_BB_Edges(), SCHEDULER::Schedule_Cycle(), Split_PU_Entry_BB(), Split_PU_Exit_BB(), Target_Simple_Fall_Through_BB(), SCHED_DFLOW_MGR::Upward_Sched_Kill_Def_LiveOut_Of_Bookeeping_Place(), SCHED_DFLOW_MGR::Upward_Sched_Kill_Def_LiveOut_Of_Target_BB(), Verify_Entry_Exit_BB(), and Verify_Global_Edge().
Definition at line 110 of file region_bb_util.cxx.
Referenced by PARTITION_GRAPH::Collect_Info(), REGIONAL_CFG::Del_Node(), RGN_Add_Regional_Cfg_Edge(), RGN_Del_Regional_Cfg_Edge(), Verify_Entry_Exit_BB(), and Verify_Node().
Definition at line 843 of file region_bb_util.cxx.
| REGIONAL_CFG_NODE* Regional_Cfg_Node | ( | REGIONAL_CFG_NODE * | node, | |
| REGION * | rgn | |||
| ) |
Definition at line 73 of file region_bb_util.cxx.
| REGIONAL_CFG_NODE* Regional_Cfg_Node | ( | BB * | bb | ) |
Definition at line 61 of file region_bb_util.cxx.
Referenced by SRC_BB_MGR::_compute_cutting_set(), SRC_BB_MGR::_find_src_bbs(), Build_Outgoing_Edges(), SRC_BB_MGR::Calc_Cutting_Set_Between_Src_And_Targ(), FAVOR_DELAY_HEUR::Compute_Delay(), FAVOR_DELAY_HEUR::Compute_Heur_Data_For_Inserted_OP(), IF_CONVERTOR::Convert_Candidates(), Convert_Goto_To_If(), REGIONAL_CFG::Del_Node(), REGION_TREE::Del_Region(), DAG_BUILDER::Find_Ancestor_BB(), Find_Execution_Path(), Find_Reaching_Def_Use_Set(), FAVOR_DELAY_HEUR::Find_Significant_Pred_For_Target_Blk(), DAG_BUILDER::Find_Successor_BB(), IF_CONVERTOR::Force_If_Convert(), IF_CONVERTOR::Insert_Predicate(), EDGE_PROFILE::Instrument_Cloop_Branch(), EDGE_PROFILE::Instrument_Entry(), EDGE_PROFILE::Instrument_Indirect_Cond_Branch(), EDGE_PROFILE::Instrument_Ip_Rel_Branch(), EDGE_PROFILE::Instrument_None_and_Other_Xfer(), EDGE_PROFILE::Instrument_Top_Branch(), IF_CONVERTOR::Is_Partial_Redundant_Def(), Merge_With_Pred(), Merge_With_Succ(), Optimize_Branches(), RGN_Add_Regional_Cfg_Edge(), RGN_Del_Regional_Cfg_Edge(), RGN_Remove_BB_And_Edges(), RGN_Unlink_BB_Edges(), Target_Simple_Fall_Through_BB(), Verify_Entry_Exit_BB(), Verify_Global_Edge(), Verify_Node(), and Verify_Region_Tree().
| void RGN_Add_Regional_Cfg_Edge | ( | BB * | pred, | |
| BB * | succ, | |||
| REGIONAL_CFG * | regional_cfg | |||
| ) |
| void RGN_Del_Regional_Cfg_Edge | ( | BB * | pred, | |
| BB * | succ, | |||
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 862 of file region_bb_util.cxx.
References BB_asm, BB_call, BB_exit, BB_last_op, BB_Move_Op_To_End(), BB_succs, BB_Transfer_Asminfo(), BB_Transfer_Callinfo(), BB_Transfer_Exitinfo(), BBLIST_item, BBLIST_next, BBLIST_prob, Exit_BB_Head, Is_True, MEM_pu_pool, NULL, OP_bb, OP_next, RGN_Gen_And_Insert_BB_After(), RGN_Link_Pred_Succ_With_Prob(), RGN_Unlink_Pred_Succ(), and tmp.
Referenced by Init_Split_PU_Entry_Or_Exit_BB(), and Update_CFG().
| BB* RGN_Gen_And_Insert_BB | ( | BB * | pred_bb, | |
| BB * | succ_bb, | |||
| REGIONAL_CFG * | regional_cfg, | |||
| BOOL | force_not_fall_through, | |||
| float | prob | |||
| ) |
Definition at line 152 of file region_bb_util.cxx.
Referenced by REGION::Edge_Splitting(), and IF_CONVERTOR::Merge_Area().
| BB* RGN_Gen_And_Insert_BB_After | ( | BB * | point, | |
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 197 of file region_bb_util.cxx.
Referenced by GRA_Add_Call_Spill_Block(), RGN_Divide_BB(), and Split_PU_Entry_BB().
| BB* RGN_Gen_And_Insert_BB_Before | ( | BB * | point, | |
| REGIONAL_CFG * | regional_cfg | |||
| ) |
| void RGN_Gen_And_Insert_Node | ( | BB * | new_bb, | |
| BB * | pred_bb, | |||
| BB * | succ_bb, | |||
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 125 of file region_bb_util.cxx.
Referenced by Insert_Goto_BB(), EDGE_PROFILE::Instrument_Cloop_Branch(), EDGE_PROFILE::Instrument_Entry(), EDGE_PROFILE::Instrument_Indirect_Cond_Branch(), EDGE_PROFILE::Instrument_Ip_Rel_Branch(), EDGE_PROFILE::Instrument_None_and_Other_Xfer(), EDGE_PROFILE::Instrument_Top_Branch(), RGN_Gen_And_Insert_BB(), Target_Simple_Fall_Through_BB(), and Update_CFG().
| void RGN_Link_Pred_Succ_With_Prob | ( | BB * | pred, | |
| BB * | succ, | |||
| float | prob, | |||
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 528 of file region_bb_util.cxx.
Referenced by Append_Succ(), Cflow_Change_Succ(), Convert_Goto_To_If(), GRA_Add_Call_Spill_Block(), Insert_Goto_BB(), EDGE_PROFILE::Instrument_Cloop_Branch(), EDGE_PROFILE::Instrument_Entry(), EDGE_PROFILE::Instrument_Indirect_Cond_Branch(), EDGE_PROFILE::Instrument_Ip_Rel_Branch(), EDGE_PROFILE::Instrument_None_and_Other_Xfer(), EDGE_PROFILE::Instrument_Top_Branch(), IF_CONVERTOR::Merge_Area(), IF_CONVERTOR::Merge_Blocks(), Merge_Splitted_PU_Entry_BB(), Merge_Splitted_PU_Exit_BB(), Merge_With_Pred(), RGN_Divide_BB(), RGN_Gen_And_Insert_BB(), Split_PU_Entry_BB(), Split_PU_Exit_BB(), Target_Simple_Fall_Through_BB(), and Update_CFG().
| void RGN_Remove_BB_And_Edges | ( | BB * | bb, | |
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 301 of file region_bb_util.cxx.
Referenced by Delete_BB(), IF_CONVERTOR::Merge_Blocks(), Merge_Splitted_PU_Entry_BB(), and Merge_Splitted_PU_Exit_BB().
| void RGN_Unlink_BB_Edges | ( | BB * | bb, | |
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 240 of file region_bb_util.cxx.
References REGIONAL_CFG::_node_set, REGIONAL_CFG::Add_Node(), BB_id, BB_preds, BB_succs, BBLIST_item, REGIONAL_CFG::Del_Node(), REGION_TREE::Del_Region(), fprintf(), Get_Trace(), Home_Region(), REGIONAL_CFG_NODE::Home_Region(), Is_True, node, NULL, REGION::Parent(), region, REGION::Regional_Cfg(), Regional_Cfg_Node(), RGN_Unlink_Pred_Succ(), REGION_TREE::Root(), TFile, TP_A_REGION, REGION::Tree(), and TT_RGN_SUMMERY.
Referenced by Delete_BB_Contents().
| void RGN_Unlink_Pred_Succ | ( | BB * | pred, | |
| BB * | succ, | |||
| REGIONAL_CFG * | regional_cfg | |||
| ) |
Definition at line 818 of file region_bb_util.cxx.
Referenced by Append_Succ(), Cflow_Change_Succ(), Convert_Goto_To_If(), Convert_Goto_To_Return(), Convert_If_To_Goto(), GRA_Add_Call_Spill_Block(), Insert_Goto_BB(), EDGE_PROFILE::Instrument_Cloop_Branch(), EDGE_PROFILE::Instrument_Entry(), EDGE_PROFILE::Instrument_Indirect_Cond_Branch(), EDGE_PROFILE::Instrument_Ip_Rel_Branch(), EDGE_PROFILE::Instrument_None_and_Other_Xfer(), EDGE_PROFILE::Instrument_Top_Branch(), IF_CONVERTOR::Merge_Area(), IF_CONVERTOR::Merge_Blocks(), Merge_Splitted_PU_Entry_BB(), Merge_Splitted_PU_Exit_BB(), Merge_With_Pred(), Resolve_Conditional_Branch(), RGN_Divide_BB(), RGN_Gen_And_Insert_BB(), RGN_Remove_BB_And_Edges(), RGN_Unlink_BB_Edges(), Split_PU_Entry_BB(), Split_PU_Exit_BB(), and Update_CFG().
1.5.6