68 const DesignFlowManagerConstRef _design_flow_manager)
105 HLSMgr->CGetFunctionBehavior(
funId)->is_simple_pipeline());
108 const auto vEnd = support.end();
109 for(
auto vIt = support.begin(); vIt != vEnd; ++vIt)
114 for(
auto k = live.begin();
k != k_end; ++
k)
125 std::list<vertex> running_ops =
HLS->
STG->
GetStg()->GetStateInfo(*vIt)->executing_operations;
126 const auto opEnd = running_ops.end();
127 vertex state_0 = get_next(start_state);
128 for(
auto opIt = running_ops.begin(); opIt != opEnd; ++opIt)
130 std::vector<HLS_manager::io_binding_type> inVars =
HLSMgr->get_required_values(
HLS->
functionId, *opIt);
131 for(
unsigned int num = 0; num != inVars.size(); num++)
133 unsigned int var = std::get<0>(inVars[num]);
136 current_vertex = *vIt;
137 while(current_vertex != state_0)
145 current_vertex = fetch_previous(start_state, current_vertex);
158 "-->Storage Value Information of function " +
159 HLSMgr->CGetFunctionBehavior(
funId)->CGetBehavioralHelper()->get_function_name() +
":");
165 "Time to compute storage value information: " +
print_cpu_time(step_time) +
" seconds");
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
Class specification to contain liveness information.
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Data structure representing the entire HLS information.
This file contains the structures needed to manage a graph that will represent the state transition g...
const int output_level
The output level.
vertex get_entry_state() const
Gets vertex that represents state that contains entry node.
#define INDENT_OUT_MEX(outLevel, curOutLevel, mex)
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
static bool is_parameter(const tree_managerConstRef &TM, const unsigned int index)
return true in case the index corresponds to a parameter in ssa form or not
DesignFlowStep_Status InternalExec() override
Execute the step.
#define OUTPUT_LEVEL_MINIMUM
minimum debugging print is performed.
Include a set of utilities used to manage CPU time measures.
const std::list< vertex > & get_support() const
return the support set of the live in/out
#define START_TIME(time_var)
Macro used to store the start time into time_var.
StorageValueInformationRef storage_value_information
data-structure for storage values
static const uint32_t k[]
values_scheme(const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager)
Constructor of the class.
#define STOP_TIME(time_var)
Macro used to store the elapsed time into time_var.
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
This file contains the structures needed to manage a graph that will represent the state transition g...
DesignFlowStep_Status
The status of a step.
livenessRef Rliv
data-structure containing the variable liveness
This file collects some utility functions.
Class specification of values scheme for the storage value insertion phase.
std::string print_cpu_time(long int t)
massage a long which represents a time interval in milliseconds, into a string suitable for output ...
~values_scheme() override
Destructor of the class.
#define OUTPUT_LEVEL_PEDANTIC
verbose debugging print is performed.
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...
this class is used to manage the command-line or XML options.
StateTransitionGraphRef GetStg()
Returns pointer to state transition graph created.
unsigned int functionId
this is the identifier of the function to be implemented
StateTransitionGraphManagerRef STG
Store the refcounted state transition graph.
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
Data structure definition for high-level synthesis flow.
const CustomOrderedSet< unsigned int > & get_live_in(const vertex &v) const
Get the set of variables live at the input of a vertex.
#define THROW_ASSERT(cond, str_expr)
helper function used to check an assert and if needed to throw an error in a standard way ...