#include <stdio.h>#include "defs.h"#include <vector>#include <map>#include "mempool.h"#include "tn.h"#include "tn_set.h"#include "op.h"#include "bb.h"


Go to the source code of this file.
| #define SWP_OPS_LIMIT 130 |
Definition at line 72 of file cg_swp.h.
Referenced by Shorten_Critical_Recurrence_By_Reassociation(), SWP_OP_vector::SWP_OP_vector(), and SWP_OPTIONS::SWP_OPTIONS().
| #define SWP_OPS_OVERHEAD 2 |
Definition at line 71 of file cg_swp.h.
Referenced by Detect_SWP_Constraints(), and Shorten_Critical_Recurrence_By_Reassociation().
| enum SCHED_DIRECTION |
| enum SWP_RETURN_CODE |
Definition at line 622 of file cg_swp.cxx.
| SWP_RETURN_CODE Modulo_Schedule | ( | SWP_OP_vector & | v, | |
| INT | min_ii, | |||
| INT | max_ii, | |||
| double | incr_alpha, | |||
| double | incr_beta, | |||
| INT | budget, | |||
| bool | trace, | |||
| bool | trace_details | |||
| ) |
Definition at line 1119 of file cg_swp_sched.cxx.
References SWP_OP_vector::branch, LT_Heuristics::Choose_Issue_Cycle(), LT_Heuristics::Choose_Op(), SWP_OPTIONS::Critical_Threshold, double, LT_Heuristics::Eject_Precedence_Conflict_OPs(), LT_Heuristics::Eject_Resources_Conflict_OPs(), Slack::Estart(), FALSE, MinDist::Found_ii(), fprintf(), Get_Trace(), SWP_OP_vector::ii, MRT::ii, LT_Heuristics::Init_SWP_OP_state(), INT, Is_True, local_mem_pool, Slack::Lstart(), MAX, MOD_SCHED_FAILED, MOD_SCHED_SUCCEEDED, Modulo_Schedule_Succeeded(), mrt, SWP_OP_vector::num_flops, SWP_OP_vector::num_mops, SWP_OPTIONS::OPS_Limit, SWP_OPTIONS::Opt_Level, SWP_OP_vector::previous_trials, SWP_OP_vector::Print(), Slack::Print(), MinLT::Print(), MinDist::Print(), LT_Heuristics::Print(), SWP_OP_vector::size(), SWP_OP_vector::start, SWP_OP_vector::stop, SWP_Options, TFile, TP_SWPIPE, LT_Heuristics::Update_Precedence(), LT_Heuristics::Update_Resources(), Slack::Verify(), MRT::Verify(), SWP_OP_vector::Verify(), and MRT::Verify2().
Referenced by Perform_SWP().
| bool operator< | ( | CLASS_REG_PAIR | x, | |
| CLASS_REG_PAIR | y | |||
| ) | [inline] |
| bool operator== | ( | CLASS_REG_PAIR | x, | |
| CLASS_REG_PAIR | y | |||
| ) | [inline] |
| void SWP_Emit | ( | SWP_OP_vector & | op_state, | |
| SWP_REG_ASSIGNMENT & | reg_assign, | |||
| TN * | trip_count_tn, | |||
| BB * | head, | |||
| BB * | body, | |||
| BB * | tail, | |||
| bool | is_doloop, | |||
| bool | trace | |||
| ) |
Definition at line 726 of file cg_swp_emit.cxx.
References ANNOT_ROTATING_KERNEL, BB_Add_Annotation(), BB_Append_Ops(), BB_rid, bzero(), CG_LOOP_Backpatch_Trace(), SWP_OPTIONS::Enable_BRP, FALSE, FOR_ALL_BB_OPs, FOR_ALL_ISA_REGISTER_CLASS(), Gen_SWP_Branch_Predict(), i, SWP_OP_vector::ii, info, INT, INT32, SWP_OP_vector::loop_one_more_time, MEM_pu_pool_ptr, SWP_OP_vector::min_ii, SWP_OP_vector::min_sl, New_Region_Id(), NULL, OP_code, OP_glue, OP_opnd, OP_opnds, OP_result, OP_results, OPS_EMPTY, Print_BB(), r, rc, SWP_OP_vector::rec_min_ii, REGION_BOUND_UNKNOWN, REGION_NO_RETURN, REGISTER_CLASS_allocatable, REGISTER_First_Rotating_Registers(), REGISTER_Last_Rotating_Registers(), REGISTER_MAX, REGISTER_SET_Difference_Range(), REGISTER_SET_MemberP(), REGISTER_UNDEFINED, SWP_OP_vector::res_min_ii, RID_Add_kid(), RID_bounds_exist, RID_cginfo, RID_Create(), RID_has_reg_alloc_Set, RID_has_return, RID_is_glue_code, RID_level, RID_num_exits, RID_parent, RID_type, RID_TYPE_swp, RL_CG, ROTATING_KERNEL_INFO_copyin, ROTATING_KERNEL_INFO_copyout, ROTATING_KERNEL_INFO_ii, ROTATING_KERNEL_INFO_localdef, ROTATING_KERNEL_INFO_min_ii, ROTATING_KERNEL_INFO_min_sched_len, ROTATING_KERNEL_INFO_rec_min_ii, ROTATING_KERNEL_INFO_res_counts, ROTATING_KERNEL_INFO_res_min_ii, ROTATING_KERNEL_INFO_sched_len, ROTATING_KERNEL_INFO_stage_count, ROTATING_KERNEL_INFO_succeeded, SWP_OP_vector::sc, Set_BB_mod_pred_rotating_registers, Set_BB_mod_rotating_registers, Set_BB_reg_alloc, Set_BB_scheduled, SWP_OP_vector::size(), SWP_OP_vector::sl, SWP_Loop_Init_Fini(), SWP_Options, SWP_Rename_TNs(), SWP_Reorder_OPs(), TI_RES_COUNT_Add_Op_Resources(), TI_RES_COUNT_Alloc(), TN_is_const_reg(), TN_register, TN_register_class, TRUE, TYPE_PU_ALLOC, and SWP_REG_ASSIGNMENT::Update_Annotation().
Referenced by Perform_SWP().
Definition at line 283 of file cg_swp.h.
References OP_map_idx, and swp_map_tbl.
Referenced by MinDist::Compute(), Critical_Recurrence::Critical_Recurrence(), SWP_OP::Index(), LT_Heuristics::Init_SWP_OP_state(), MinLT::MinLT(), Modulo_Schedule_Verify(), OPND_is_not_critical(), Reassociate(), Slack::Relax_Precedence(), LT_Heuristics::Sched_Top_Down(), Shorten_Critical_Recurrence_By_Reassociation(), SWP_Init_Samecycle_Dep_Order(), SWP_OP_vector::SWP_OP_vector(), SWP_Update_OP_slot(), and SWP_Verify_Samecycle_Dep_Order().
Definition at line 141 of file cg_swp.cxx.
Referenced by SWP_index(), and SWP_OP_vector::SWP_OP_vector().
1.5.6