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

Pass to add function called through pointers to the call graph. More...

#include <call_graph_builtin_call.hpp>

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

Public Member Functions

 CallGraphBuiltinCall (const application_managerRef AM, unsigned int functionId, const DesignFlowManagerConstRef DFM, const ParameterConstRef P)
 Ctor. More...
 
 ~CallGraphBuiltinCall () override
 
void Initialize () override
 Initialize the step (i.e., like a constructor, but executed just before exec. More...
 
DesignFlowStep_Status InternalExec () override
 Execute the step. More...
 
- Public Member Functions inherited from FunctionFrontendFlowStep
 FunctionFrontendFlowStep (const application_managerRef AppM, const unsigned int function_id, const FrontendFlowStepType frontend_flow_step_type, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
 ~FunctionFrontendFlowStep () 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...
 
DesignFlowStep_Status Exec () final
 Execute the step. More...
 
bool HasToBeExecuted () const override
 Check if this step has actually to be executed. More...
 
unsigned int CGetBBVersion () const
 
unsigned int GetBitValueVersion () const
 
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 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...
 
- 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 (DesignFlowStep::RelationshipType RT) const override
 State relationship with other design step. More...
 
- Protected Member Functions inherited from FunctionFrontendFlowStep
void WriteBBGraphDot (const std::string &filename) const
 Write the current version of statement list in dot format. More...
 

Private Types

using TypeDeclarationMap = std::map< std::string, CustomOrderedSet< unsigned int > >
 

Private Member Functions

void lookForBuiltinCall (const tree_nodeRef TN)
 
void ExtendCallGraph (unsigned int callerIdx, tree_nodeRef funType, unsigned int stmtIdx)
 
void buildTypeToDeclaration ()
 

Private Attributes

bool modified
 
CustomUnorderedSet< unsigned int > already_visited
 Already visited tree node (used to avoid infinite recursion) More...
 
TypeDeclarationMap typeToDeclaration
 Map function types to matching declarations. More...
 
bool typeToDeclarationBuilt
 

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 FunctionFrontendFlowStep
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. 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...
 
- Protected Attributes inherited from FunctionFrontendFlowStep
const FunctionBehaviorRef function_behavior
 The function behavior of the function to be analyzed. More...
 
const unsigned int function_id
 The index of the function to be analyzed. More...
 
unsigned int bb_version
 The version of the basic block intermediate representation on which this step has been applied. More...
 
unsigned int bitvalue_version
 The version of the bitvalue information on which this step has been applied. More...
 
- 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...
 

Detailed Description

Pass to add function called through pointers to the call graph.

Definition at line 49 of file call_graph_builtin_call.hpp.

Member Typedef Documentation

◆ TypeDeclarationMap

using CallGraphBuiltinCall::TypeDeclarationMap = std::map<std::string, CustomOrderedSet<unsigned int> >
private

Definition at line 52 of file call_graph_builtin_call.hpp.

Constructor & Destructor Documentation

◆ CallGraphBuiltinCall()

CallGraphBuiltinCall::CallGraphBuiltinCall ( const application_managerRef  AM,
unsigned int  functionId,
const DesignFlowManagerConstRef  DFM,
const ParameterConstRef  P 
)

Ctor.

Parameters
AMApplication Manager
functionIdFunction id of the analyzed function.
DFMDesign Flow Manager
PSet of parameters

Definition at line 247 of file call_graph_builtin_call.cpp.

References DesignFlowStep::debug_level, DEBUG_LEVEL_NONE, GET_CLASS, and ~CallGraphBuiltinCall().

Here is the call graph for this function:

◆ ~CallGraphBuiltinCall()

CallGraphBuiltinCall::~CallGraphBuiltinCall ( )
overridedefault

Referenced by CallGraphBuiltinCall().

Here is the caller graph for this function:

Member Function Documentation

◆ buildTypeToDeclaration()

void CallGraphBuiltinCall::buildTypeToDeclaration ( )
private

◆ ComputeFrontendRelationships()

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

State relationship with other design step.

Parameters
RTType of the relationship to be considered

Implements FrontendFlowStep.

Definition at line 225 of file call_graph_builtin_call.cpp.

References DesignFlowStep::DEPENDENCE_RELATIONSHIP, DesignFlowStep::INVALIDATION_RELATIONSHIP, DesignFlowStep::PRECEDENCE_RELATIONSHIP, SAME_FUNCTION, THROW_UNREACHABLE, and WHOLE_APPLICATION.

◆ ExtendCallGraph()

void CallGraphBuiltinCall::ExtendCallGraph ( unsigned int  callerIdx,
tree_nodeRef  funType,
unsigned int  stmtIdx 
)
private

◆ Initialize()

void CallGraphBuiltinCall::Initialize ( )
overridevirtual

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

Reimplemented from DesignFlowStep.

Definition at line 258 of file call_graph_builtin_call.cpp.

◆ InternalExec()

DesignFlowStep_Status CallGraphBuiltinCall::InternalExec ( )
overridevirtual

◆ lookForBuiltinCall()

void CallGraphBuiltinCall::lookForBuiltinCall ( const tree_nodeRef  TN)
private

Field Documentation

◆ already_visited

CustomUnorderedSet<unsigned int> CallGraphBuiltinCall::already_visited
private

Already visited tree node (used to avoid infinite recursion)

Definition at line 55 of file call_graph_builtin_call.hpp.

Referenced by ExtendCallGraph(), InternalExec(), and lookForBuiltinCall().

◆ modified

bool CallGraphBuiltinCall::modified
private

Definition at line 53 of file call_graph_builtin_call.hpp.

Referenced by ExtendCallGraph(), InternalExec(), and lookForBuiltinCall().

◆ typeToDeclaration

TypeDeclarationMap CallGraphBuiltinCall::typeToDeclaration
private

Map function types to matching declarations.

Definition at line 60 of file call_graph_builtin_call.hpp.

Referenced by buildTypeToDeclaration(), ExtendCallGraph(), and InternalExec().

◆ typeToDeclarationBuilt

bool CallGraphBuiltinCall::typeToDeclarationBuilt
private

Definition at line 62 of file call_graph_builtin_call.hpp.

Referenced by buildTypeToDeclaration(), and InternalExec().


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

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