![]() |
PandA-2024.02
|
#include <conflict_based_register.hpp>


Public Member Functions | |
| conflict_based_register (const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type) | |
| Constructor of the class. More... | |
| ~conflict_based_register () override | |
| void | create_conflict_graph () |
Public Member Functions inherited from reg_binding_creator | |
| reg_binding_creator (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. More... | |
| DesignFlowStep_Status | InternalExec () final |
| Execute the step. More... | |
Public Member Functions inherited from HLSFunctionStep | |
| HLSFunctionStep (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. More... | |
| ~HLSFunctionStep () override | |
| Destructor. More... | |
| bool | HasToBeExecuted () const override |
| Check if this step has actually to be executed. More... | |
| void | Initialize () override |
| Initialize the step (i.e., like a constructor, but executed just before exec. More... | |
| std::string | GetSignature () const final |
| Return a unified identifier of this design step. More... | |
| std::string | GetName () const final |
| Return the name of this design step. More... | |
| DesignFlowStep_Status | Exec () final |
| Execute the step. More... | |
Public Member Functions inherited from HLS_step | |
| HLS_step (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef()) | |
| Constructor. More... | |
| ~HLS_step () override | |
| Destructor. More... | |
| std::string | GetSignature () const override |
| Return a unified identifier of this design step. More... | |
| std::string | GetName () const override |
| Return the name of this design step. More... | |
| virtual std::string | GetKindText () const |
| Return the name of the type of this frontend flow step. More... | |
| DesignFlowStepFactoryConstRef | CGetDesignFlowStepFactory () const final |
| Return the factory to create this type of steps. More... | |
| void | ComputeRelationships (DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override |
| Compute the relationships of a step with other steps. More... | |
Public Member Functions inherited from DesignFlowStep | |
| DesignFlowStep (const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters) | |
| Constructor. More... | |
| virtual | ~DesignFlowStep () |
| Destructor. More... | |
| DesignFlowStep_Status | GetStatus () const |
| Return the status of this design step. More... | |
| virtual void | WriteDot (std::ostream &out) const |
| Write the label for a dot graph. More... | |
| bool | IsComposed () const |
| Returns if this step is composed. More... | |
| int | CGetDebugLevel () const |
| Return the debug level of the step. More... | |
| virtual void | PrintInitialIR () const |
| Dump the initial intermediate representation. More... | |
| virtual void | PrintFinalIR () const |
| Dump the final intermediate representation. More... | |
Protected Types | |
| using | conflict_graph = boost::adjacency_matrix< boost::undirectedS > |
| using | cg_vertex_descriptor = boost::graph_traits< conflict_graph >::vertex_descriptor |
| using | cg_vertices_size_type = boost::graph_traits< conflict_graph >::vertices_size_type |
| using | cg_vertex_index_map = boost::property_map< conflict_graph, boost::vertex_index_t >::const_type |
Protected Attributes | |
| conflict_graph * | cg |
| conflict graph More... | |
| boost::iterator_property_map< cg_vertices_size_type *, cg_vertex_index_map, cg_vertices_size_type, cg_vertices_size_type & > | color |
Protected Attributes inherited from reg_binding_creator | |
| unsigned int | register_lower_bound |
| lower bound More... | |
Protected Attributes inherited from HLSFunctionStep | |
| std::map< unsigned int, unsigned int > | last_bb_ver |
| last bb version of the called functions More... | |
| std::map< unsigned int, unsigned int > | last_bitvalue_ver |
| The version of bit value IR representation on which this step was applied. More... | |
| const unsigned int | funId |
| identifier of the function to be processed (0 means that it is a global step) More... | |
| hlsRef | HLS |
| HLS data structure of the function to be analyzed. More... | |
| unsigned int | bb_version |
| The version of bb intermediate representation on which this step was applied. More... | |
| unsigned int | bitvalue_version |
| The version of bitvalue on which this step was applied. More... | |
| unsigned int | memory_version |
| The version of memory representation on which this step was applied. More... | |
Protected Attributes inherited from HLS_step | |
| const HLS_managerRef | HLSMgr |
| information about all the HLS synthesis More... | |
| const HLSFlowStep_Type | hls_flow_step_type |
| The type of this step. More... | |
| const HLSFlowStepSpecializationConstRef | hls_flow_step_specialization |
| The information about specialization. More... | |
Protected Attributes inherited from DesignFlowStep | |
| bool | composed |
| True if this step represents a composition of design flow steps (e.g., a flow); must be set by specialized constructors. More... | |
| const Wrefcount< const DesignFlowManager > | design_flow_manager |
| The design flow manager. More... | |
| const ParameterConstRef | parameters |
| Set of input parameters. More... | |
| int | debug_level |
| The debug level. More... | |
| const int | output_level |
| The output level. More... | |
Private Attributes | |
| std::vector< cg_vertices_size_type > | color_vec |
Additional Inherited Members | |
Public Types inherited from DesignFlowStep | |
| enum | RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP } |
| The relationship type. More... | |
Static Public Member Functions inherited from HLSFunctionStep | |
| static std::string | ComputeSignature (const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization, const unsigned int function_id) |
| Compute the signature of a hls flow step. More... | |
Static Public Member Functions inherited from HLS_step | |
| static std::string | EnumToName (const HLSFlowStep_Type hls_flow_step_type) |
| Given a HLS flow step type, return the name of the type. More... | |
| static const std::string | ComputeSignature (const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization) |
| Compute the signature of a hls flow step. More... | |
Protected Member Functions inherited from reg_binding_creator | |
| virtual DesignFlowStep_Status | RegisterBinding ()=0 |
| const CustomUnorderedSet< std::tuple< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship > > | ComputeHLSRelationships (const DesignFlowStep::RelationshipType relationship_type) const override |
| Return the set of analyses in relationship with this design step. More... | |
Protected Member Functions inherited from HLSFunctionStep | |
| void | ComputeRelationships (DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override |
| Compute the relationships of a step with other steps. More... | |
Static Protected Attributes inherited from HLS_step | |
| static CustomUnorderedMap< std::string, HLSFlowStep_Type > | command_line_name_to_enum |
| Map hls step name to enum. More... | |
Definition at line 50 of file conflict_based_register.hpp.
|
protected |
Definition at line 54 of file conflict_based_register.hpp.
|
protected |
Definition at line 56 of file conflict_based_register.hpp.
|
protected |
Definition at line 55 of file conflict_based_register.hpp.
|
protected |
Definition at line 53 of file conflict_based_register.hpp.
| conflict_based_register::conflict_based_register | ( | const ParameterConstRef | Param, |
| const HLS_managerRef | HLSMgr, | ||
| unsigned int | funId, | ||
| const DesignFlowManagerConstRef | design_flow_manager, | ||
| const HLSFlowStep_Type | hls_flow_step_type | ||
| ) |
Constructor of the class.
HLS/binding/storage_value_insertion includes.
| design_flow_manager | is the design flow manager |
| hls_flow_step_type | is the register binding algorithm |
Definition at line 59 of file conflict_based_register.cpp.
References ~conflict_based_register().

|
overridedefault |
| void conflict_based_register::create_conflict_graph | ( | ) |
conflict graph creation
variables of different size are in conflict
Definition at line 69 of file conflict_based_register.cpp.
References StorageValueInformation::are_value_bitsize_compatible(), cg, color, color_vec, liveness::get_live_in(), StorageValueInformation::get_number_of_storage_values(), StorageValueInformation::get_storage_value_index(), liveness::get_support(), HLSFunctionStep::HLS, k, max, reg_binding_creator::register_lower_bound, hls::Rliv, hls::storage_value_information, and THROW_ASSERT.
Referenced by vertex_coloring_register::RegisterBinding(), and chordal_coloring_register::RegisterBinding().


|
protected |
conflict graph
Definition at line 59 of file conflict_based_register.hpp.
Referenced by create_conflict_graph(), vertex_coloring_register::RegisterBinding(), and chordal_coloring_register::RegisterBinding().
|
protected |
Definition at line 63 of file conflict_based_register.hpp.
Referenced by create_conflict_graph(), vertex_coloring_register::RegisterBinding(), and chordal_coloring_register::RegisterBinding().
|
private |
Definition at line 66 of file conflict_based_register.hpp.
Referenced by create_conflict_graph().
1.8.13