PandA-2024.02
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
RangeAnalysis Class Reference

#include <Range_Analysis.hpp>

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

Public Member Functions

 RangeAnalysis (const application_managerRef AM, const DesignFlowManagerConstRef dfm, const ParameterConstRef parameters)
 Constructor. More...
 
 ~RangeAnalysis () override
 Destructor. More...
 
DesignFlowStep_Status Exec () override
 perform the range analysis More...
 
void Initialize () override
 Initialize the step (i.e., like a constructor, but executed just before exec. More...
 
bool HasToBeExecuted () const override
 Check if this step has actually to be executed. More...
 
- Public Member Functions inherited from ApplicationFrontendFlowStep
 ApplicationFrontendFlowStep (const application_managerRef AppM, const FrontendFlowStepType frontend_flow_step_type, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
 ~ApplicationFrontendFlowStep () override
 Destructor. 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...
 
- Public Member Functions inherited from FrontendFlowStep
 FrontendFlowStep (const application_managerRef AppM, const FrontendFlowStepType frontend_flow_step_type, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
 ~FrontendFlowStep () override
 Destructor. More...
 
virtual std::string GetKindText () const
 Return the name of the type of this frontend flow step. More...
 
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory () const override
 Return the factory to create this type of steps. More...
 
void PrintTreeManager (const bool before) const
 Dump the tree manager. More...
 
void PrintInitialIR () const override
 Dump the initial intermediate representation. More...
 
void PrintFinalIR () const override
 Dump the final intermediate representation. 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...
 

Protected Member Functions

const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > ComputeFrontendRelationships (const DesignFlowStep::RelationshipType relationship_type) const override
 Return the set of analyses in relationship with this design step. More...
 
void ComputeRelationships (DesignFlowStepSet &relationships, const DesignFlowStep::RelationshipType relationship_type) override
 Compute the relationships of a step with other steps. More...
 

Protected Attributes

CustomOrderedSet< unsigned int > fun_id_to_restart
 stores the function ids of the functions whose Dead Code need to be restarted More...
 
std::map< unsigned int, unsigned int > last_bitvalue_ver
 
std::map< unsigned int, unsigned int > last_bb_ver
 
- Protected Attributes inherited from FrontendFlowStep
const application_managerRef AppM
 The application manager. More...
 
const FrontendFlowStepType frontend_flow_step_type
 The type of this step. More...
 
unsigned int print_counter
 Print counter. 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...
 

Private Member Functions

bool finalize (ConstraintGraphRef)
 

Private Attributes

int graph_debug
 
uint64_t iteration
 
uint64_t stop_iteration
 
uint64_t stop_transformation
 
SolverType solverType
 
bool requireESSA
 
int execution_mode
 

Additional Inherited Members

- Public Types inherited from FrontendFlowStep
using FunctionRelationship = enum { ALL_FUNCTIONS, CALLED_FUNCTIONS, CALLING_FUNCTIONS, SAME_FUNCTION, WHOLE_APPLICATION }
 The different relationship type between function analysis. More...
 
- Public Types inherited from DesignFlowStep
enum  RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP }
 The relationship type. More...
 
- Static Public Member Functions inherited from ApplicationFrontendFlowStep
static const std::string ComputeSignature (const FrontendFlowStepType frontend_flow_step_type)
 Compute the signature of a function frontend flow step. More...
 
- Static Public Member Functions inherited from FrontendFlowStep
static void CreateSteps (const DesignFlowManagerConstRef design_flow_manager, const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship >> &frontend_relationships, const application_managerConstRef application_manager, DesignFlowStepSet &relationships)
 Create the relationship steps of a step with other steps starting from already specified dependencies between frontend flow steps. More...
 
static const std::string EnumToKindText (const FrontendFlowStepType frontend_flow_step_type)
 Given a frontend flow step type, return the name of the type. More...
 

Detailed Description

Definition at line 66 of file Range_Analysis.hpp.

Constructor & Destructor Documentation

◆ RangeAnalysis()

RangeAnalysis::RangeAnalysis ( const application_managerRef  AM,
const DesignFlowManagerConstRef  dfm,
const ParameterConstRef  parameters 
)

Constructor.

Parameters
_Paramis the set of the parameters
_AppMis the application manager
function_idis the identifier of the function
design_flow_manageris the design flow manager

◆ ~RangeAnalysis()

RangeAnalysis::~RangeAnalysis ( )
override

Destructor.

Member Function Documentation

◆ ComputeFrontendRelationships()

const CustomUnorderedSet<std::pair<FrontendFlowStepType, FunctionRelationship> > RangeAnalysis::ComputeFrontendRelationships ( const DesignFlowStep::RelationshipType  relationship_type) const
overrideprotectedvirtual

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

Parameters
relationship_typeis the type of relationship to be considered

Implements FrontendFlowStep.

◆ ComputeRelationships()

void RangeAnalysis::ComputeRelationships ( DesignFlowStepSet relationship,
const DesignFlowStep::RelationshipType  relationship_type 
)
overrideprotectedvirtual

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

Reimplemented from FrontendFlowStep.

◆ Exec()

DesignFlowStep_Status RangeAnalysis::Exec ( )
overridevirtual

perform the range analysis

Returns
the exit status of this step

Implements ApplicationFrontendFlowStep.

◆ finalize()

bool RangeAnalysis::finalize ( ConstraintGraphRef  )
private

◆ HasToBeExecuted()

bool RangeAnalysis::HasToBeExecuted ( ) const
overridevirtual

Check if this step has actually to be executed.

Returns
true if the step has to be executed

Reimplemented from ApplicationFrontendFlowStep.

◆ Initialize()

void RangeAnalysis::Initialize ( )
overridevirtual

Initialize the step (i.e., like a constructor, but executed just before exec.

Reimplemented from DesignFlowStep.

Field Documentation

◆ execution_mode

int RangeAnalysis::execution_mode
private

Definition at line 77 of file Range_Analysis.hpp.

◆ fun_id_to_restart

CustomOrderedSet<unsigned int> RangeAnalysis::fun_id_to_restart
protected

stores the function ids of the functions whose Dead Code need to be restarted

Definition at line 83 of file Range_Analysis.hpp.

◆ graph_debug

int RangeAnalysis::graph_debug
private

Definition at line 69 of file Range_Analysis.hpp.

◆ iteration

uint64_t RangeAnalysis::iteration
private

Definition at line 70 of file Range_Analysis.hpp.

◆ last_bb_ver

std::map<unsigned int, unsigned int> RangeAnalysis::last_bb_ver
protected

Definition at line 85 of file Range_Analysis.hpp.

◆ last_bitvalue_ver

std::map<unsigned int, unsigned int> RangeAnalysis::last_bitvalue_ver
protected

Definition at line 84 of file Range_Analysis.hpp.

◆ requireESSA

bool RangeAnalysis::requireESSA
private

Definition at line 76 of file Range_Analysis.hpp.

◆ solverType

SolverType RangeAnalysis::solverType
private

Definition at line 75 of file Range_Analysis.hpp.

◆ stop_iteration

uint64_t RangeAnalysis::stop_iteration
private

Definition at line 71 of file Range_Analysis.hpp.

◆ stop_transformation

uint64_t RangeAnalysis::stop_transformation
private

Definition at line 72 of file Range_Analysis.hpp.


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

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