PandA-2024.02
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
TechnologyFlowStep Class Referenceabstract

#include <technology_flow_step.hpp>

Inheritance diagram for TechnologyFlowStep:
Inheritance graph
[legend]
Collaboration diagram for TechnologyFlowStep:
Collaboration graph
[legend]

Public Member Functions

 TechnologyFlowStep (const technology_managerRef _TM, const generic_deviceRef target, const DesignFlowManagerConstRef design_flow_manager, const TechnologyFlowStep_Type technology_flow_step_type, const ParameterConstRef parameters)
 Constructor. 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...
 
void ComputeRelationships (DesignFlowStepSet &steps, const DesignFlowStep::RelationshipType relationship_type) override
 Compute the relationships of a step with other steps. More...
 
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory () const override
 Return the factory to create this type of steps. More...
 
bool HasToBeExecuted () const override
 Check if this step has actually to be executed. More...
 
- Public Member Functions inherited from DesignFlowStep
 DesignFlowStep (const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
virtual ~DesignFlowStep ()
 Destructor. More...
 
virtual DesignFlowStep_Status Exec ()=0
 Execute the step. More...
 
virtual void Initialize ()
 Initialize the step (i.e., like a constructor, but executed just before exec. 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...
 

Static Public Member Functions

static const std::string EnumToName (const TechnologyFlowStep_Type technology_flow_step_type)
 Given a technology flow step type, return the name of the type. More...
 
static const std::string ComputeSignature (const TechnologyFlowStep_Type technology_flow_step_type)
 Compute the signature of a technology flow step. More...
 

Protected Member Functions

virtual const CustomUnorderedSet< TechnologyFlowStep_TypeComputeTechnologyRelationships (const DesignFlowStep::RelationshipType relationship_type) const =0
 Return the set of analyses in relationship with this design step. More...
 

Protected Attributes

TechnologyFlowStep_Type technology_flow_step_type
 The type of step. More...
 
const technology_managerRef TM
 The technology manager. More...
 
const generic_deviceRef target
 The target device. 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 DesignFlowManagerdesign_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...
 

Additional Inherited Members

- Public Types inherited from DesignFlowStep
enum  RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP }
 The relationship type. More...
 

Detailed Description

Definition at line 90 of file technology_flow_step.hpp.

Constructor & Destructor Documentation

◆ TechnologyFlowStep()

TechnologyFlowStep::TechnologyFlowStep ( const technology_managerRef  _TM,
const generic_deviceRef  target,
const DesignFlowManagerConstRef  design_flow_manager,
const TechnologyFlowStep_Type  technology_flow_step_type,
const ParameterConstRef  parameters 
)

Constructor.

Parameters
TMis the technology manager
targetis the target device
design_flow_manageris the design flow manager
technology_flow_step_typeis the type of this step
parametersis the set of input parameters

Definition at line 114 of file technology_flow_step.cpp.

Member Function Documentation

◆ CGetDesignFlowStepFactory()

DesignFlowStepFactoryConstRef TechnologyFlowStep::CGetDesignFlowStepFactory ( ) const
overridevirtual

Return the factory to create this type of steps.

Implements DesignFlowStep.

Definition at line 109 of file technology_flow_step.cpp.

References DesignFlowStep::design_flow_manager, and Wrefcount< T >::lock().

Referenced by ComputeRelationships().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeRelationships()

void TechnologyFlowStep::ComputeRelationships ( DesignFlowStepSet steps,
const DesignFlowStep::RelationshipType  relationship_type 
)
overridevirtual

Compute the relationships of a step with other steps.

Parameters
dependenciesis where relationships will be stored
relationship_typeis the type of relationship to be computed

Implements DesignFlowStep.

Definition at line 93 of file technology_flow_step.cpp.

References CGetDesignFlowStepFactory(), ComputeSignature(), ComputeTechnologyRelationships(), DesignFlowStep::design_flow_manager, and Wrefcount< T >::lock().

Here is the call graph for this function:

◆ ComputeSignature()

const std::string TechnologyFlowStep::ComputeSignature ( const TechnologyFlowStep_Type  technology_flow_step_type)
static

◆ ComputeTechnologyRelationships()

virtual const CustomUnorderedSet<TechnologyFlowStep_Type> TechnologyFlowStep::ComputeTechnologyRelationships ( const DesignFlowStep::RelationshipType  relationship_type) const
protectedpure virtual

Return the set of analyses in relationship with this design step.

Parameters
relationship_typeis the type of relationship to be considered

Implemented in FixCharacterization, LoadDefaultTechnology, LoadDeviceTechnology, LoadFileTechnology, LoadTechnology, WriteTechnology, and LoadBuiltinTechnology.

Referenced by ComputeRelationships().

Here is the caller graph for this function:

◆ EnumToName()

const std::string TechnologyFlowStep::EnumToName ( const TechnologyFlowStep_Type  technology_flow_step_type)
static

Given a technology flow step type, return the name of the type.

Header include.

Parameters
technology_flow_step_typeis the type to be considered
Returns
the name of the type

design_flows include design_flows/technology include

Definition at line 52 of file technology_flow_step.cpp.

References FIX_CHARACTERIZATION, LOAD_DEFAULT_TECHNOLOGY, LOAD_DEVICE_TECHNOLOGY, LOAD_FILE_TECHNOLOGY, LOAD_TECHNOLOGY, THROW_UNREACHABLE, and WRITE_TECHNOLOGY.

Referenced by GetName().

Here is the caller graph for this function:

◆ GetName()

std::string TechnologyFlowStep::GetName ( ) const
overridevirtual

Return the name of this design step.

Returns
the name of the pass (for debug purpose)

Implements DesignFlowStep.

Definition at line 88 of file technology_flow_step.cpp.

References EnumToName(), and technology_flow_step_type.

Referenced by LoadTechnology::PrintFinalIR().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetSignature()

std::string TechnologyFlowStep::GetSignature ( ) const
overridevirtual

Return a unified identifier of this design step.

Returns
the signature of the design step

Implements DesignFlowStep.

Definition at line 83 of file technology_flow_step.cpp.

References ComputeSignature(), and technology_flow_step_type.

Here is the call graph for this function:

◆ HasToBeExecuted()

bool TechnologyFlowStep::HasToBeExecuted ( ) const
overridevirtual

Check if this step has actually to be executed.

Returns
true if the step has to be executed

Implements DesignFlowStep.

Definition at line 125 of file technology_flow_step.cpp.

Field Documentation

◆ target

const generic_deviceRef TechnologyFlowStep::target
protected

The target device.

Definition at line 100 of file technology_flow_step.hpp.

Referenced by LoadDeviceTechnology::Exec(), and WriteTechnology::Exec().

◆ technology_flow_step_type

TechnologyFlowStep_Type TechnologyFlowStep::technology_flow_step_type
protected

The type of step.

Definition at line 94 of file technology_flow_step.hpp.

Referenced by GetName(), and GetSignature().

◆ TM

const technology_managerRef TechnologyFlowStep::TM
protected

The documentation for this class was generated from the following files:

Generated on Mon Feb 12 2024 13:04:05 for PandA-2024.02 by doxygen 1.8.13