48 #ifndef SCHEDULING_HPP 49 #define SCHEDULING_HPP 92 std::tuple<HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship>>
UINT_STRONG_TYPEDEF_FORWARD_DECL(ControlStep)
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Scheduling(const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef())
Constructor.
RelationshipType
The relationship type.
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
Class specification of the graph structures.
The base class for design step.
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
CustomUnorderedMap< vertex, unsigned int > switch_map_size
store for each switch the number of outgoing branches.
const HLSFlowStep_Type hls_flow_step_type
The type of this step.
redefinition of map to manage ordered/unordered structures
REF_FORWARD_DECL(DesignFlowStep)
absl::flat_hash_map< T, U, Hash, Eq, Alloc > CustomUnorderedMap
This class macros for the definition of strong typedef.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
CustomUnorderedMap< vertex, CustomUnorderedMapUnstable< unsigned int, unsigned int > > switch_normalizing_map
for each controlling vertex, it defines a relation between switch tags and branch tags ...
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Generic class managing scheduling algorithms.
Class used to describe a particular graph with operations as nodes.
refcount< const HLSFlowStepSpecialization > HLSFlowStepSpecializationConstRef
const refcount definition of the class
virtual const CustomUnorderedSet< std::tuple< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship > > ComputeHLSRelationships(const DesignFlowStep::RelationshipType relationship_type) const override
Compute the relationship of this step.
~Scheduling() override
Destructor.
const CustomUnorderedMap< vertex, bool > & get_spec() const
It returns speculation property map.
CustomUnorderedMap< vertex, bool > spec
Map for speculation property of each operation vertex.
const HLSFlowStepSpecializationConstRef hls_flow_step_specialization
The information about specialization.
CONSTREF_FORWARD_DECL(OpGraph)
const bool speculation
flag to check speculation