75 unsigned _funId,
const DesignFlowManagerConstRef _design_flow_manager)
94 switch(relationship_type)
114 return relationships;
130 const auto design_flow_step =
132 design_flow_graph->CGetDesignFlowStepInfo(frontend_step)->design_flow_step :
133 GetPointer<const FrontendFlowStepFactory>(
135 ->CreateApplicationFrontendFlowStep(FrontendFlowStepType::BIT_VALUE_IPA);
136 relationship.insert(design_flow_step);
142 const auto design_flow_step =
144 design_flow_graph->CGetDesignFlowStepInfo(frontend_step)->design_flow_step :
145 GetPointer<const FrontendFlowStepFactory>(
147 ->CreateFunctionFrontendFlowStep(FrontendFlowStepType::BIT_VALUE_OPT,
funId);
148 relationship.insert(design_flow_step);
156 const auto curr_address_bitsize =
HLSMgr->get_address_bitsize();
157 auto m64P =
parameters->getOption<std::string>(OPT_gcc_m32_mx32).find(
"-m64") != std::string::npos;
158 const auto default_address_bitsize =
parameters->isOption(OPT_addr_bus_bitsize) ?
159 parameters->getOption<
unsigned int>(OPT_addr_bus_bitsize) :
161 if(default_address_bitsize != curr_address_bitsize)
166 const auto design_flow_step = frontend_step !=
NULL_VERTEX ?
167 design_flow_graph->CGetDesignFlowStepInfo(frontend_step)->design_flow_step :
168 GetPointer<const FrontendFlowStepFactory>(
170 ->CreateFunctionFrontendFlowStep(FrontendFlowStepType::BIT_VALUE,
funId);
171 HLSMgr->Rmem->set_enable_hls_bit_value(
true);
172 design_flow_step->Initialize();
173 const auto return_status = design_flow_step->Exec();
174 HLSMgr->Rmem->set_enable_hls_bit_value(
false);
175 return return_status;
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Data structure representing the entire HLS information.
File containing functions and utilities to support the printing of debug messagges.
Step successfully executed.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
Proxy class calling the bit value analysis just before the hls_bit_value step taking into account the...
RelationshipType
The relationship type.
Source must be executed to satisfy target.
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
exceptions managed by PandA
This class contains the base representation for a generic frontend flow step which works on a single ...
redefinition of map to manage ordered/unordered structures
Auxiliary methods for manipulating string.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
Factory for hls flow step.
HLSFunctionBitValue(const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
Classes to describe design flow graph.
Target must be reexecuted.
static const std::string ComputeSignature(const FrontendFlowStepType frontend_flow_step_type)
Compute the signature of a function frontend flow step.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
This class contains the base representation for a generic frontend flow step.
DesignFlowStep_Status GetStatus() const
Return the status of this design step.
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
This file collects some utility functions and macros.
void ComputeRelationships(DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override
Compute the relationships of a step with other steps.
refcount< T > lock() const
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
This class contains the methods to create a frontend flow step.
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.
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.
int debug_level
The debug level.
void ComputeRelationships(DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override
Compute the relationships of a step with other steps.
DesignFlowStep_Status InternalExec() override
Execute the step.
Data structure definition for high-level synthesis flow.
This class contains the base representation for a generic frontend flow step which works on the whole...
#define NULL_VERTEX
null vertex definition
Datastructure to represent memory information in high-level synthesis.
A brief description of the C++ Header File.
~HLSFunctionBitValue() override
Destructor.
static const std::string ComputeSignature(const FrontendFlowStepType frontend_flow_step_type, const unsigned int function_id)
Compute the signature of a function frontend flow step.