PandA-2024.02
Public Member Functions | Static Public Member Functions | Protected Attributes
DesignFlow Class Reference

#include <design_flow.hpp>

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

Public Member Functions

 DesignFlow (const DesignFlowManagerConstRef design_flow_manager, const DesignFlow_Type design_flow_type, const ParameterConstRef parameters)
 Constructor. More...
 
 ~DesignFlow () override
 Destructor. More...
 
void ComputeRelationships (DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override
 Compute the relationships of a step with other steps. More...
 
std::string GetSignature () const override
 Return the signature of this step. More...
 
std::string GetName () const override
 Return the name of this design step. 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 std::string ComputeSignature (const DesignFlow_Type design_flow_type)
 Compute the signature of a step. More...
 
static const std::string EnumToKindText (const DesignFlow_Type design_flow_type)
 Return the name of the type. More...
 
static DesignFlow_Type KindTextToEnum (const std::string &name)
 Given the name of design flow, return the enum. More...
 

Protected Attributes

const DesignFlow_Type design_flow_type
 The type of this design flow. 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 52 of file design_flow.hpp.

Constructor & Destructor Documentation

◆ DesignFlow()

DesignFlow::DesignFlow ( const DesignFlowManagerConstRef  design_flow_manager,
const DesignFlow_Type  design_flow_type,
const ParameterConstRef  parameters 
)

Constructor.

Parameters
design_flow_manageris the design flow manager
design_flow_typeis the type of the flow
parametersis the set of the parameters

Definition at line 46 of file design_flow.cpp.

References ~DesignFlow().

Here is the call graph for this function:

◆ ~DesignFlow()

DesignFlow::~DesignFlow ( )
overridedefault

Destructor.

Referenced by DesignFlow().

Here is the caller graph for this function:

Member Function Documentation

◆ CGetDesignFlowStepFactory()

DesignFlowStepFactoryConstRef DesignFlow::CGetDesignFlowStepFactory ( ) const
overridevirtual

Return the factory to create this type of steps.

Returns
the factory to create frontend flow step

Implements DesignFlowStep.

Definition at line 81 of file design_flow.cpp.

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

Here is the call graph for this function:

◆ ComputeRelationships()

void DesignFlow::ComputeRelationships ( DesignFlowStepSet relationship,
const DesignFlowStep::RelationshipType  relationship_type 
)
overridevirtual

Compute the relationships of a step with other steps.

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

Implements DesignFlowStep.

Definition at line 54 of file design_flow.cpp.

◆ ComputeSignature()

std::string DesignFlow::ComputeSignature ( const DesignFlow_Type  design_flow_type)
static

Compute the signature of a step.

Parameters
design_flow_typeis the type of design flow
Returns
the signature corresponding to the design flow

Definition at line 104 of file design_flow.cpp.

References STR.

Referenced by GetSignature().

Here is the caller graph for this function:

◆ EnumToKindText()

const std::string DesignFlow::EnumToKindText ( const DesignFlow_Type  design_flow_type)
static

Return the name of the type.

Parameters
design_flow_typeis the type of the design flow
Returns
the name

Definition at line 68 of file design_flow.cpp.

References NON_DETERMINISTIC_FLOWS, and THROW_UNREACHABLE.

Referenced by GetName().

Here is the caller graph for this function:

◆ GetName()

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

Return the name of this design step.

Returns
the name of the pass (for debug purpose)

Implements DesignFlowStep.

Definition at line 63 of file design_flow.cpp.

References design_flow_type, and EnumToKindText().

Here is the call graph for this function:

◆ GetSignature()

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

Return the signature of this step.

Implements DesignFlowStep.

Definition at line 58 of file design_flow.cpp.

References ComputeSignature(), and design_flow_type.

Here is the call graph for this function:

◆ HasToBeExecuted()

bool DesignFlow::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 99 of file design_flow.cpp.

◆ KindTextToEnum()

DesignFlow_Type DesignFlow::KindTextToEnum ( const std::string &  name)
static

Given the name of design flow, return the enum.

Parameters
nameis the name of the design flow
Returns
the corresponding enum

Definition at line 86 of file design_flow.cpp.

References NON_DETERMINISTIC_FLOWS, and THROW_UNREACHABLE.

Referenced by DesignFlowFactory::CreateFlowStep().

Here is the caller graph for this function:

Field Documentation

◆ design_flow_type

const DesignFlow_Type DesignFlow::design_flow_type
protected

The type of this design flow.

Definition at line 56 of file design_flow.hpp.

Referenced by GetName(), and GetSignature().


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

Generated on Mon Feb 12 2024 13:03:49 for PandA-2024.02 by doxygen 1.8.13