60 const DesignFlowManagerConstRef _design_flow_manager)
81 for(boost::tie(op, op_end) = boost::vertices(*flow_graph); op != op_end; ++op)
85 if(current_starting_cycle == current_ending_cycle)
88 "---Operations " +
GET_NAME(flow_graph, *op) +
" and " +
GET_NAME(flow_graph, *op) +
93 bool is_chained_test =
false;
94 for(boost::tie(ei, ei_end) = boost::in_edges(*op, *flow_graph); ei != ei_end; ei++)
96 vertex src = boost::source(*ei, *flow_graph);
100 std::string(
"Operations ") +
GET_NAME(flow_graph, src) +
" and " +
101 GET_NAME(flow_graph, *op) +
" are chained in");
103 is_chained_test =
true;
109 std::string(
"Operations ") +
GET_NAME(flow_graph, *op) +
" is chained with something");
113 for(boost::tie(eo, eo_end) = boost::out_edges(*op, *flow_graph); eo != eo_end; eo++)
119 std::string(
"Operations ") +
GET_NAME(flow_graph, tgt) +
" and " +
120 GET_NAME(flow_graph, *op) +
" are chained out");
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
#define DEBUG_LEVEL_VERY_PEDANTIC
extremely verbose debugging print is performed.
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Data structure representing the entire HLS information.
#define INDENT_DBG_MEX(dbgLevel, curDbgLevel, mex)
We are producing a debug version of the program, so the message is printed;.
boost::graph_traits< graph >::out_edge_iterator OutEdgeIterator
out_edge_iterator definition.
File containing functions and utilities to support the printing of debug messagges.
#define DEBUG_LEVEL_PEDANTIC
very verbose debugging print is performed.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
AbsControlStep get_cstep(const vertex &op) const
Returns the clock cycle where the given operation has been scheduled.
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
#define GET_NAME(data, vertex_index)
Helper macro returning the name associated with a node.
boost::graph_traits< graph >::in_edge_iterator InEdgeIterator
in_edge_iterator definition.
exceptions managed by PandA
AbsControlStep get_cstep_end(const vertex &op) const
Return the last clock cycle in which the operation execute.
~sched_based_chaining_computation() override
Destructor.
redefinition of map to manage ordered/unordered structures
Auxiliary methods for manipulating string.
DesignFlowStep_Status InternalExec() override
Execute the step.
ScheduleRef Rsch
Store the refcounted scheduling of the operations.
Data structure used to store the schedule of the operations.
redefinition of set to manage ordered/unordered structures
chaining computation starting from the results of the scheduling step
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
boost::graph_traits< graph >::vertex_iterator VertexIterator
vertex_iterator definition.
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
sched_based_chaining_computation(const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
const OpGraphConstRef CGetOpGraph(FunctionBehavior::graph_type gt) const
This method returns the operation graphs.
hlsRef HLS
HLS data structure of the function to be analyzed.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
System dependence + anti-dependence + output dependence graph + flow graph.
this class is used to manage the command-line or XML options.
int debug_level
The debug level.
Data structure definition for high-level synthesis flow.
A brief description of the C++ Header File.
ChainingInformationRef chaining_information
Store the refcounted chaining info.