PandA-2024.02
|
Class managing the schedule of the operations. More...
#include <schedule.hpp>
Public Member Functions | |
Schedule (const HLS_managerConstRef hls_manager, const unsigned int function_index, const OpGraphConstRef op_graph, const ParameterConstRef parameters) | |
Constructor. More... | |
~Schedule () | |
Destructor. More... | |
void | Initialize () |
Initialize the data structure. More... | |
ControlStep | get_csteps () const |
This method returns the number of control steps. More... | |
void | set_csteps (ControlStep cs) |
This method sets the number of control steps. More... | |
void | print (fu_bindingRef Rfu=fu_bindingRef()) const |
Function that prints the class schedule. More... | |
void | WriteDot (const std::string &file_name, OpGraphConstRef sub_op_graph=OpGraphConstRef(), OpVertexSet *opSet=nullptr) const |
Function that writes the dot file of the scheduling by using the AT&T direct graph representation. More... | |
void | set_spec (const CustomUnorderedMap< vertex, bool > &spec_map) |
Sets the speculation map. More... | |
CustomUnorderedMap< vertex, bool > | get_spec () const |
Returns the speculation map. More... | |
void | set_execution (const vertex &op, ControlStep c_step) |
Sets the starting clock cycle for the given operation. More... | |
void | set_execution_end (const vertex &op, ControlStep c_step_end) |
Sets the ending clock cycle for the given operation. More... | |
bool | is_scheduled (const vertex &op) const |
Returns true if the given operation has been already scheduled, false otherwise. More... | |
bool | is_scheduled (const unsigned int statement_index) const |
Returns true if the given operation has been already scheduled, false otherwise. More... | |
AbsControlStep | get_cstep (const vertex &op) const |
Returns the clock cycle where the given operation has been scheduled. More... | |
AbsControlStep | get_cstep (const unsigned int index) const |
Returns the clock cycle where the given operation has been scheduled. More... | |
AbsControlStep | get_cstep_end (const vertex &op) const |
Return the last clock cycle in which the operation execute. More... | |
AbsControlStep | get_cstep_end (const unsigned int statement_index) const |
Return the last clock cycle in which the operation execute. More... | |
double | GetEndingTime (const unsigned int operation) const |
Return the starting time of the operation. More... | |
double | GetStartingTime (const unsigned int operation) const |
Return the starting time of the operation. More... | |
double | get_fo_correction (unsigned int first_operation, unsigned int second_operation) const |
return the fan-out correction for a given edge More... | |
unsigned int | num_scheduled () const |
Returns the number of scheduled operations. More... | |
void | clear () |
Erases the current results. More... | |
void | set_slack (vertex op, double v_slack) |
set the slack associated with the vertex with respect to the clock period More... | |
double | get_slack (vertex op) const |
void | UpdateTime (const unsigned int operation_index, bool update_cs=true) |
Compute the starting and the ending time of a statement. More... | |
FunctionFrontendFlowStep_Movable | CanBeMoved (const unsigned int statement_index, const unsigned int basic_block) const |
Check if a statement can be moved at the end of a basic block. More... | |
bool | EvaluateCondsMerging (const unsigned statement_index, const unsigned int first_condition, const unsigned second_condition, unsigned int function_decl_nid) const |
Check if a further condition can be added to gimple multi way if without increasing basic block latency. More... | |
bool | EvaluateMultiWayIfsMerging (const unsigned int first_statement_index, const unsigned int second_statement_index, unsigned int function_decl_nid) const |
Evaluate if two conditional statements can be merged to create a gimple_multi_way_if. More... | |
const std::string | PrintTimingInformation (const unsigned int statement_index) const |
Print the timing information about an operation. More... | |
CustomSet< unsigned int > | ComputeCriticalPath (const StateInfoConstRef state_info) const |
Compute the critical path inside a state. More... | |
void | AddConnectionTimes (unsigned int first_operation, unsigned int second_operation, const double value) |
Add fan out correction time. More... | |
Private Member Functions | |
double | GetReadyTime (const unsigned int tree_node_index, const unsigned int basic_block_index) const |
Get when in a basic block an ssa is ready. More... | |
double | GetBBEndingTime (const unsigned int basic_block_index) const |
Return the ending time of a basic block (i.e., the ending time of the last ending operation. More... | |
Private Attributes | |
const Wrefcount< const HLS_manager > | hls_manager |
The HLS manager. More... | |
tree_managerRef | TM |
The tree manager. More... | |
tree_manipulationConstRef | tree_man |
The tree manipulation. More... | |
AllocationInformationConstRef | allocation_information |
The allocation information. More... | |
const unsigned int | function_index |
The index of the function. More... | |
ControlStep | tot_csteps |
total number of control steps More... | |
CustomUnorderedMapUnstable< unsigned int, ControlStep > | op_starting_cycle |
map between the operation index and the clock cycle on which the operation starts its execution NOTE: it must be a map to know which is the last step More... | |
CustomMap< ControlStep, CustomSet< unsigned int > > | starting_cycles_to_ops |
The reverse of op_starting_cycle. More... | |
CustomUnorderedMapUnstable< unsigned int, ControlStep > | op_ending_cycle |
map between the operation index and the clock cycle on which the operations ends its execution More... | |
CustomMap< unsigned int, double > | starting_times |
The absolute starting time of each operation as computed by the scheduling Key is the index of the gimple operation. More... | |
CustomMap< unsigned int, double > | ending_times |
The absolute ending time of each operation as computed by the scheduling Key is the index of the gimple operation. More... | |
CustomMap< std::pair< unsigned int, unsigned int >, double > | connection_times |
Connection times The key is an operation graph edge. More... | |
CustomUnorderedMap< vertex, bool > | spec |
Map for speculation property of each operation vertex. More... | |
std::map< vertex, double > | op_slack |
slack map More... | |
OpGraphConstRef | op_graph |
The operation graph (for scheduling purpose) (cannot be const because of = operator) More... | |
const ParameterConstRef | parameters |
The set of input parameters. More... | |
const int | debug_level |
The debug level. More... | |
Friends | |
class | parametric_list_based |
class | AllocationInformation |
Class managing the schedule of the operations.
Definition at line 118 of file schedule.hpp.
Schedule::Schedule | ( | const HLS_managerConstRef | hls_manager, |
const unsigned int | function_index, | ||
const OpGraphConstRef | op_graph, | ||
const ParameterConstRef | parameters | ||
) |
Constructor.
Definition at line 110 of file schedule.cpp.
References ~Schedule().
|
default |
void Schedule::AddConnectionTimes | ( | unsigned int | first_operation, |
unsigned int | second_operation, | ||
const double | value | ||
) |
Add fan out correction time.
edge | is the edge to which correction time is associated |
value | is the value of the correction |
Definition at line 1412 of file schedule.cpp.
References connection_times.
Referenced by parametric_list_based::exec().
FunctionFrontendFlowStep_Movable Schedule::CanBeMoved | ( | const unsigned int | statement_index, |
const unsigned int | basic_block | ||
) | const |
Check if a statement can be moved at the end of a basic block.
statement_index | is the index of the statement |
basic_block | is the index of the basic block |
Moved in a basic block after the definition - there cannot be problem of chaining
Compute the remaining time
Operation is scheduled at the beginning of the next control step
Check if this operation ends not in the last control step
Definition at line 601 of file schedule.cpp.
References allocation_information, FunctionBehavior::CGetBehavioralHelper(), OpGraph::CGetOpNodeInfo(), tree_manager::CGetTreeNode(), tree_helper::compute_ssa_uses_rec_ptr(), debug_level, DEBUG_LEVEL_VERY_PEDANTIC, ending_times, ENTRY_ID, EXIT_ID, function_index, GET_NODE, tree_manager::get_tree_node_const(), GetBBEndingTime(), AllocationInformation::GetClockPeriodMargin(), AllocationInformation::GetConnectionTime(), AllocationInformation::GetCycleLatency(), AllocationInformation::GetFuType(), AllocationInformation::GetTimeLatency(), hls_manager, INDENT_DBG_MEX, AllocationInformation::is_one_cycle_direct_access_memory_unit(), AllocationInformation::is_operation_bounded(), Wrefcount< T >::lock(), MOVABLE, op_graph, STR, THROW_ASSERT, TIMING, TM, tree_node::ToString(), fu_binding::UNKNOWN, and UNMOVABLE.
Referenced by simple_code_motion::CheckMovable(), and PhiOpt::IdentifyPattern().
void Schedule::clear | ( | ) |
Erases the current results.
Definition at line 329 of file schedule.cpp.
References op_starting_cycle, spec, starting_cycles_to_ops, and tot_csteps.
Referenced by ASLAP::compute_ALAP(), ASLAP::compute_ASAP(), and ASLAP::update_ALAP().
CustomSet< unsigned int > Schedule::ComputeCriticalPath | ( | const StateInfoConstRef | state_info | ) | const |
Compute the critical path inside a state.
state_info | is the state |
The set of operations which are in the critical path of the current basic block
Computing ending time of state
Compute the remaining time
Definition at line 1216 of file schedule.cpp.
References allocation_information, OpGraph::CGetOpNodeInfo(), tree_helper::compute_ssa_uses_rec_ptr(), debug_level, DEBUG_LEVEL_VERY_PEDANTIC, ending_times, ENTRY_ID, EXIT_ID, GET_NODE, tree_manager::get_tree_node_const(), AllocationInformation::GetConnectionTime(), AllocationInformation::GetTimeLatency(), INDENT_DBG_MEX, AllocationInformation::is_operation_PI_registered(), op_graph, op_starting_cycle, starting_times, STR, THROW_ASSERT, THROW_UNREACHABLE, TM, and fu_binding::UNKNOWN.
bool Schedule::EvaluateCondsMerging | ( | const unsigned | statement_index, |
const unsigned int | first_condition, | ||
const unsigned | second_condition, | ||
unsigned int | function_decl_nid | ||
) | const |
Check if a further condition can be added to gimple multi way if without increasing basic block latency.
statement_index | is the index of the gimple_multi_way_if |
first_condition | is the first condition |
second_condition | is the second condition |
Definition at line 787 of file schedule.cpp.
References allocation_information, tree_manager::CGetTreeNode(), tree_manipulation::CreateOrExpr(), debug_level, DEBUG_LEVEL_VERY_PEDANTIC, tree_node::get_kind(), GET_NODE, tree_manager::get_tree_node_const(), GetBBEndingTime(), GetReadyTime(), AllocationInformation::GetTimeLatency(), tree_manager::GetTreeReindex(), INDENT_DBG_MEX, index, max, STR, TM, tree_man, and fu_binding::UNKNOWN.
Referenced by PhiOpt::IdentifyPattern().
bool Schedule::EvaluateMultiWayIfsMerging | ( | const unsigned int | first_statement_index, |
const unsigned int | second_statement_index, | ||
unsigned int | function_decl_nid | ||
) | const |
Evaluate if two conditional statements can be merged to create a gimple_multi_way_if.
first_statement_index | is the index of the first statement to be merged |
second_statement_index | is the index of the second statement to be merged |
Note that we compute ending times only for the longest newly created condition; existing condition can be worse
The basic block on the default cond edge
Definition at line 814 of file schedule.cpp.
References allocation_information, tree_manipulation::CreateAndExpr(), tree_manipulation::CreateNotExpr(), FunctionBehavior::FBB, function_index, GET_NODE, tree_manager::get_tree_node_const(), GetBBEndingTime(), GetReadyTime(), AllocationInformation::GetTimeLatency(), hls_manager, Wrefcount< T >::lock(), max, STR, THROW_ASSERT, THROW_UNREACHABLE, TM, tree_man, true, and fu_binding::UNKNOWN.
AbsControlStep Schedule::get_cstep | ( | const vertex & | op | ) | const |
Returns the clock cycle where the given operation has been scheduled.
op | is the vertex of the operation |
Definition at line 270 of file schedule.cpp.
References BB_ENTRY, BB_EXIT, OpGraph::CGetOpNodeInfo(), tree_manager::CGetTreeNode(), ENTRY_ID, EXIT_ID, GET_NAME, is_scheduled(), op_graph, op_starting_cycle, THROW_ASSERT, and TM.
Referenced by ASLAP::add_constraints_to_ALAP(), ASLAP::add_constraints_to_ASAP(), parametric_list_based::CheckSchedulabilityConditions(), ASLAP::compute_ALAP_fast(), ASLAP::compute_ALAP_worst_case(), ASLAP::compute_ASAP(), BB_based_stg::InternalExec(), sched_based_chaining_computation::InternalExec(), CondExprRestructuring::InternalExec(), commutative_expr_restructuring::InternalExec(), SDCScheduling::InternalExec(), cdfc_module_binding::InternalExec(), commutative_expr_restructuring::IsCommExprChain(), CondExprRestructuring::IsCondExprChain(), print(), and hls::xwrite().
AbsControlStep Schedule::get_cstep | ( | const unsigned int | index | ) | const |
Returns the clock cycle where the given operation has been scheduled.
index | is the index of the operation |
Definition at line 286 of file schedule.cpp.
References BB_ENTRY, BB_EXIT, tree_manager::CGetTreeNode(), ENTRY_ID, EXIT_ID, op_starting_cycle, STR, THROW_ASSERT, and TM.
AbsControlStep Schedule::get_cstep_end | ( | const vertex & | op | ) | const |
Return the last clock cycle in which the operation execute.
op | is the operation |
Definition at line 302 of file schedule.cpp.
References OpGraph::CGetOpNodeInfo(), and op_graph.
Referenced by BB_based_stg::InternalExec(), sched_based_chaining_computation::InternalExec(), parametric_list_based::InternalExec(), cdfc_module_binding::InternalExec(), commutative_expr_restructuring::IsCommExprChain(), CondExprRestructuring::IsCondExprChain(), print(), and UpdateTime().
AbsControlStep Schedule::get_cstep_end | ( | const unsigned int | statement_index | ) | const |
Return the last clock cycle in which the operation execute.
op | is the operation |
Definition at line 308 of file schedule.cpp.
References BB_ENTRY, BB_EXIT, tree_manager::CGetTreeNode(), ENTRY_ID, EXIT_ID, is_scheduled(), op_ending_cycle, STR, THROW_ASSERT, and TM.
|
inline |
This method returns the number of control steps.
Definition at line 216 of file schedule.hpp.
Referenced by parametric_list_based::InternalExec().
double Schedule::get_fo_correction | ( | unsigned int | first_operation, |
unsigned int | second_operation | ||
) | const |
return the fan-out correction for a given edge
e | is the edge |
Definition at line 1162 of file schedule.cpp.
References connection_times.
Referenced by cdfc_module_binding::InternalExec().
|
inline |
Definition at line 345 of file schedule.hpp.
References symmetry::value.
|
inline |
|
private |
Return the ending time of a basic block (i.e., the ending time of the last ending operation.
basic_block_index | is the index of the basic block |
Definition at line 1116 of file schedule.cpp.
References allocation_information, ending_times, function_index, GET_NODE, tree_manager::get_tree_node_const(), AllocationInformation::GetClockPeriodMargin(), hls::HLS_C, hls_manager, tree_node::index, Wrefcount< T >::lock(), STR, THROW_ASSERT, and TM.
Referenced by CanBeMoved(), EvaluateCondsMerging(), and EvaluateMultiWayIfsMerging().
double Schedule::GetEndingTime | ( | const unsigned int | operation | ) | const |
Return the starting time of the operation.
Definition at line 1140 of file schedule.cpp.
References tree_manager::CGetTreeNode(), ending_times, ENTRY_ID, EXIT_ID, STR, THROW_ASSERT, and TM.
Referenced by CondExprRestructuring::InternalExec(), commutative_expr_restructuring::InternalExec(), RemoveEndingIf::InternalExec(), cdfc_module_binding::InternalExec(), commutative_expr_restructuring::IsCommExprChain(), CondExprRestructuring::IsCondExprChain(), and PrintTimingInformation().
|
private |
Get when in a basic block an ssa is ready.
tree_node_index | is the index of the tree node |
basic_block_index | is the index of the basic block to be considered |
Definition at line 1090 of file schedule.cpp.
References debug_level, DEBUG_LEVEL_VERY_PEDANTIC, ending_times, GET_NODE, tree_manager::get_tree_node_const(), INDENT_DBG_MEX, STR, THROW_ASSERT, THROW_UNREACHABLE, and TM.
Referenced by EvaluateCondsMerging(), and EvaluateMultiWayIfsMerging().
double Schedule::GetStartingTime | ( | const unsigned int | operation | ) | const |
Return the starting time of the operation.
Definition at line 1151 of file schedule.cpp.
References ENTRY_ID, EXIT_ID, starting_times, STR, and THROW_ASSERT.
Referenced by RemoveEndingIf::InternalExec(), cdfc_module_binding::InternalExec(), commutative_expr_restructuring::IsCommExprChain(), CondExprRestructuring::IsCondExprChain(), and PrintTimingInformation().
void Schedule::Initialize | ( | ) |
Initialize the data structure.
Definition at line 1397 of file schedule.cpp.
References allocation_information, FunctionBehavior::CGetOpGraph(), ending_times, FunctionBehavior::FLSAODG, function_index, hls_manager, Wrefcount< T >::lock(), op_ending_cycle, op_graph, op_slack, op_starting_cycle, spec, starting_times, TM, and tot_csteps.
Referenced by Scheduling::Initialize().
Returns true if the given operation has been already scheduled, false otherwise.
Definition at line 259 of file schedule.cpp.
References OpGraph::CGetOpNodeInfo(), and op_graph.
Referenced by ASLAP::compute_ALAP_fast(), ASLAP::compute_ASAP(), parametric_list_based::exec(), get_cstep(), get_cstep_end(), and UpdateTime().
bool Schedule::is_scheduled | ( | const unsigned int | statement_index | ) | const |
Returns true if the given operation has been already scheduled, false otherwise.
Definition at line 265 of file schedule.cpp.
References op_starting_cycle.
unsigned int Schedule::num_scheduled | ( | ) | const |
Returns the number of scheduled operations.
Definition at line 324 of file schedule.cpp.
References op_starting_cycle.
Referenced by parametric_list_based::exec(), and ASLAP::print().
void Schedule::print | ( | fu_bindingRef | Rfu = fu_bindingRef() | ) | const |
Function that prints the class schedule.
Definition at line 126 of file schedule.cpp.
References OpGraph::CGetOpNodeInfo(), get_cstep(), get_cstep_end(), fu_binding::get_fu_name(), GET_NAME, INDENT_OUT_MEX, op_graph, and STR.
Referenced by unique_binding::InternalExec(), parametric_list_based::InternalExec(), and ASLAP::print().
const std::string Schedule::PrintTimingInformation | ( | const unsigned int | statement_index | ) | const |
Print the timing information about an operation.
Definition at line 1175 of file schedule.cpp.
References GetEndingTime(), GetStartingTime(), and NumberToString().
|
inline |
This method sets the number of control steps.
cs | is the number of control steps. |
Definition at line 225 of file schedule.hpp.
References print().
Referenced by ASLAP::compute_ALAP(), ASLAP::compute_ASAP(), parametric_list_based::exec(), SDCScheduling::InternalExec(), and hls::xload().
void Schedule::set_execution | ( | const vertex & | op, |
ControlStep | c_step | ||
) |
Sets the starting clock cycle for the given operation.
op | the the operation vertex |
c_step | is an integer representing the clock cycle where the operation starts the computation |
Definition at line 232 of file schedule.cpp.
References OpGraph::CGetOpNodeInfo(), op_graph, op_starting_cycle, and starting_cycles_to_ops.
Referenced by ASLAP::add_constraints_to_ALAP(), ASLAP::add_constraints_to_ASAP(), ASLAP::compute_ALAP_fast(), ASLAP::compute_ALAP_worst_case(), ASLAP::compute_ASAP(), parametric_list_based::exec(), SDCScheduling::InternalExec(), ASLAP::update_ALAP(), and hls::xload().
void Schedule::set_execution_end | ( | const vertex & | op, |
ControlStep | c_step_end | ||
) |
Sets the ending clock cycle for the given operation.
op | the the operation vertex |
c_step_end | is an integer representing the clock cycle where the operation ends the computation |
Definition at line 246 of file schedule.cpp.
References OpGraph::CGetOpNodeInfo(), op_ending_cycle, and op_graph.
Referenced by parametric_list_based::exec(), and SDCScheduling::InternalExec().
|
inline |
set the slack associated with the vertex with respect to the clock period
Definition at line 340 of file schedule.hpp.
|
inline |
Sets the speculation map.
Definition at line 245 of file schedule.hpp.
Referenced by parametric_list_based::InternalExec().
Compute the starting and the ending time of a statement.
operation_index | is the index of the created statement |
update_cs | tells if control step information has to be updated |
The starting control step
Compute the control step
Compute the remaining time
Check if the first stage is across states; if so move a the beginning of the next state
Checking if we are crossing a state
True if the execution time of this operation has been updated
Remove the old scheduling
Reschedule operation according the order of control flow graph; in this way we are sure that topological order is followed; Skip operations prevoius to this control step since they have not to be rescheduled
Performed in this point to avoid check in the previous cycle
Definition at line 337 of file schedule.cpp.
References allocation_information, tree_manager::CGetTreeNode(), tree_helper::compute_ssa_uses_rec_ptr(), debug_level, DEBUG_LEVEL_VERY_PEDANTIC, ending_times, ENTRY_ID, EXIT_ID, from_strongtype_cast(), function_index, GET_CONST_NODE, get_cstep_end(), GET_NODE, AllocationInformation::GetClockPeriodMargin(), AllocationInformation::GetConnectionTime(), AllocationInformation::GetCycleLatency(), AllocationInformation::GetTimeLatency(), hls_manager, INDENT_DBG_MEX, AllocationInformation::is_operation_bounded(), AllocationInformation::is_operation_PI_registered(), is_scheduled(), AllocationInformation::IsVariableExecutionTime(), Wrefcount< T >::lock(), op_ending_cycle, op_starting_cycle, sl, starting_cycles_to_ops, starting_times, STR, THROW_ASSERT, THROW_UNREACHABLE, TM, AbsControlStep::UNKNOWN, and fu_binding::UNKNOWN.
Referenced by UpdateSchedule::InternalExec(), fanout_opt::InternalExec(), CondExprRestructuring::InternalExec(), commutative_expr_restructuring::InternalExec(), CSE::InternalExec(), SDCScheduling::InternalExec(), bloc::ReorderLUTs(), and bloc::update_new_stmt().
void Schedule::WriteDot | ( | const std::string & | file_name, |
OpGraphConstRef | sub_op_graph = OpGraphConstRef() , |
||
OpVertexSet * | opSet = nullptr |
||
) | const |
Function that writes the dot file of the scheduling by using the AT&T direct graph representation.
file_name | is the file name |
Definition at line 214 of file schedule.cpp.
References BehavioralHelper::get_function_name(), op_graph, and parameters.
Referenced by parametric_list_based::InternalExec().
|
friend |
Definition at line 122 of file schedule.hpp.
|
friend |
Definition at line 121 of file schedule.hpp.
|
private |
The allocation information.
Definition at line 134 of file schedule.hpp.
Referenced by CanBeMoved(), ComputeCriticalPath(), EvaluateCondsMerging(), EvaluateMultiWayIfsMerging(), GetBBEndingTime(), Initialize(), and UpdateTime().
|
private |
Connection times The key is an operation graph edge.
Definition at line 162 of file schedule.hpp.
Referenced by AddConnectionTimes(), and get_fo_correction().
|
private |
The debug level.
Definition at line 178 of file schedule.hpp.
Referenced by CanBeMoved(), ComputeCriticalPath(), EvaluateCondsMerging(), GetReadyTime(), and UpdateTime().
|
private |
The absolute ending time of each operation as computed by the scheduling Key is the index of the gimple operation.
Definition at line 158 of file schedule.hpp.
Referenced by CanBeMoved(), ComputeCriticalPath(), parametric_list_based::exec(), GetBBEndingTime(), GetEndingTime(), GetReadyTime(), Initialize(), and UpdateTime().
|
private |
The index of the function.
Definition at line 137 of file schedule.hpp.
Referenced by CanBeMoved(), EvaluateMultiWayIfsMerging(), GetBBEndingTime(), Initialize(), and UpdateTime().
|
private |
The HLS manager.
Definition at line 125 of file schedule.hpp.
Referenced by CanBeMoved(), EvaluateMultiWayIfsMerging(), GetBBEndingTime(), Initialize(), and UpdateTime().
|
private |
map between the operation index and the clock cycle on which the operations ends its execution
Definition at line 150 of file schedule.hpp.
Referenced by get_cstep_end(), Initialize(), set_execution_end(), and UpdateTime().
|
private |
The operation graph (for scheduling purpose) (cannot be const because of = operator)
Definition at line 172 of file schedule.hpp.
Referenced by CanBeMoved(), ComputeCriticalPath(), get_cstep(), get_cstep_end(), Initialize(), is_scheduled(), print(), set_execution(), set_execution_end(), and WriteDot().
|
private |
map between the operation index and the clock cycle on which the operation starts its execution NOTE: it must be a map to know which is the last step
Definition at line 144 of file schedule.hpp.
Referenced by clear(), ComputeCriticalPath(), get_cstep(), Initialize(), is_scheduled(), num_scheduled(), set_execution(), and UpdateTime().
|
private |
|
private |
Map for speculation property of each operation vertex.
If true, it means that vertex is speculative executed, false otherwise
Definition at line 166 of file schedule.hpp.
Referenced by clear(), and Initialize().
The reverse of op_starting_cycle.
Definition at line 147 of file schedule.hpp.
Referenced by clear(), set_execution(), and UpdateTime().
|
private |
The absolute starting time of each operation as computed by the scheduling Key is the index of the gimple operation.
Definition at line 154 of file schedule.hpp.
Referenced by ComputeCriticalPath(), parametric_list_based::exec(), GetStartingTime(), Initialize(), and UpdateTime().
|
private |
The tree manager.
Definition at line 128 of file schedule.hpp.
Referenced by CanBeMoved(), ComputeCriticalPath(), EvaluateCondsMerging(), EvaluateMultiWayIfsMerging(), get_cstep(), get_cstep_end(), GetBBEndingTime(), GetEndingTime(), GetReadyTime(), Initialize(), and UpdateTime().
|
private |
total number of control steps
Definition at line 140 of file schedule.hpp.
Referenced by clear(), and Initialize().
|
private |
The tree manipulation.
Definition at line 131 of file schedule.hpp.
Referenced by EvaluateCondsMerging(), and EvaluateMultiWayIfsMerging().