ROSE 0.11.145.147
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
StaticCFG::InterproceduralCFG Class Reference

Description

Definition at line 23 of file interproceduralCFG.h.

Inheritance diagram for StaticCFG::InterproceduralCFG:
Inheritance graph
[legend]
Collaboration diagram for StaticCFG::InterproceduralCFG:
Collaboration graph
[legend]

Public Member Functions

 InterproceduralCFG (SgNode *node, bool is_filtered=false)
 
SgNodegetEntry ()
 
SgIncidenceDirectedGraphgetGraph ()
 
SgGraphNodegetGraphNode (CFGNode n)
 
virtual void buildCFG ()
 Build CFG according to the 'is_filtered_' flag.
 
virtual void buildFullCFG ()
 Build CFG for debugging.
 
virtual void buildFilteredCFG ()
 Build filtered CFG which only contains interesting nodes.
 
- Public Member Functions inherited from StaticCFG::CFG
CFGNode toCFGNode (SgGraphNode *node)
 Turn a graph node into a CFGNode which is defined in VirtualCFG namespace.
 
SgGraphNodetoGraphNode (CFGNode &n)
 Turn a CFG node into a GraphNode which is defined in VirtualCFG namespace.
 
 CFG (SgNode *node, bool is_filtered=false)
 The constructor building the CFG.
 
SgIncidenceDirectedGraphgetGraph () const
 Get the pointer pointing to the graph used by static CFG.
 
void setStart (SgNode *node)
 Set the start node for graph building.
 
SgGraphNodegetEntry () const
 Get the entry node of the CFG.
 
SgGraphNodegetExit () const
 Get the exit node of the CFG.
 
bool isFilteredCFG () const
 
void setFiltered (bool flag)
 
std::vector< SgDirectedGraphEdge * > getOutEdges (SgGraphNode *node)
 
std::vector< SgDirectedGraphEdge * > getInEdges (SgGraphNode *node)
 
SgGraphNodecfgForBeginning (SgNode *node)
 
SgGraphNodecfgForEnd (SgNode *node)
 
void cfgToDot (SgNode *node, const std::string &file_name)
 Output the graph to a DOT file.
 

Public Attributes

std::map< CFGNode, SgGraphNode * > alNodes
 
CFGNode neededStart
 

Protected Member Functions

virtual void buildCFG (CFGNode n, std::map< CFGNode, SgGraphNode * > &all_nodes, std::set< CFGNode > &explored, ClassHierarchyWrapper *classHierarchy)
 
- Protected Member Functions inherited from StaticCFG::CFG
template<class NodeT , class EdgeT >
void buildCFG (NodeT n, std::map< NodeT, SgGraphNode * > &all_nodes, std::set< NodeT > &explored)
 
void clearNodesAndEdges ()
 Delete all nodes and edges in the graph and release memories.
 
virtual void processNodes (std::ostream &o, SgGraphNode *n, std::set< SgGraphNode * > &explored)
 
virtual void printNodePlusEdges (std::ostream &o, SgGraphNode *node)
 
virtual void printNode (std::ostream &o, SgGraphNode *node)
 
virtual void printEdge (std::ostream &o, SgDirectedGraphEdge *edge, bool isInEdge)
 

Additional Inherited Members

- Static Public Member Functions inherited from StaticCFG::CFG
static int getIndex (SgGraphNode *node)
 Get the index of a CFG node.
 
- Protected Attributes inherited from StaticCFG::CFG
SgIncidenceDirectedGraphgraph_
 The graph data structure holding the CFG.
 
std::map< CFGNode, SgGraphNode * > all_nodes_
 A map from CFGNode in virtualCFG to node from staticCFG.
 
SgNodestart_
 The start node to begin CFG build.
 
SgGraphNodeentry_
 The entry node.
 
SgGraphNodeexit_
 The exit node.
 
bool is_filtered_
 A flag shows whether this CFG is filtered or not.
 

Constructor & Destructor Documentation

◆ InterproceduralCFG() [1/2]

StaticCFG::InterproceduralCFG::InterproceduralCFG ( )
inline

Definition at line 31 of file interproceduralCFG.h.

◆ InterproceduralCFG() [2/2]

StaticCFG::InterproceduralCFG::InterproceduralCFG ( SgNode node,
bool  is_filtered = false 
)
inline

Definition at line 34 of file interproceduralCFG.h.

Member Function Documentation

◆ getEntry()

SgNode * StaticCFG::InterproceduralCFG::getEntry ( )
inline

Definition at line 41 of file interproceduralCFG.h.

◆ getGraph()

SgIncidenceDirectedGraph * StaticCFG::InterproceduralCFG::getGraph ( )
inline

Definition at line 45 of file interproceduralCFG.h.

◆ getGraphNode()

SgGraphNode * StaticCFG::InterproceduralCFG::getGraphNode ( CFGNode  n)
inline

Definition at line 49 of file interproceduralCFG.h.

◆ buildCFG()

virtual void StaticCFG::InterproceduralCFG::buildCFG ( )
inlinevirtual

Build CFG according to the 'is_filtered_' flag.

Reimplemented from StaticCFG::CFG.

Definition at line 53 of file interproceduralCFG.h.

◆ buildFullCFG()

virtual void StaticCFG::InterproceduralCFG::buildFullCFG ( )
virtual

Build CFG for debugging.

Reimplemented from StaticCFG::CFG.

◆ buildFilteredCFG()

virtual void StaticCFG::InterproceduralCFG::buildFilteredCFG ( )
virtual

Build filtered CFG which only contains interesting nodes.

Reimplemented from StaticCFG::CFG.

Member Data Documentation

◆ alNodes

std::map<CFGNode, SgGraphNode*> StaticCFG::InterproceduralCFG::alNodes

Definition at line 57 of file interproceduralCFG.h.

◆ neededStart

CFGNode StaticCFG::InterproceduralCFG::neededStart

Definition at line 58 of file interproceduralCFG.h.


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