ROSE  0.9.10.54
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
StaticCFG::CFG Class Reference

Description

Definition at line 24 of file staticCFG.h.

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

Public Member Functions

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. More...
 
 CFG (SgNode *node, bool is_filtered=false)
 The constructor building the CFG. More...
 
SgIncidenceDirectedGraphgetGraph () const
 Get the pointer pointing to the graph used by static CFG.
 
void setStart (SgNode *node)
 Set the start node for graph building. More...
 
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)
 
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.
 
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.
 

Static Public Member Functions

static int getIndex (SgGraphNode *node)
 Get the index of a CFG node.
 

Protected Member Functions

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)
 

Protected Attributes

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

StaticCFG::CFG::CFG ( SgNode node,
bool  is_filtered = false 
)

The constructor building the CFG.

The valid nodes are SgProject, SgStatement, SgExpression and SgInitializedName.

Member Function Documentation

SgGraphNode* StaticCFG::CFG::toGraphNode ( CFGNode n)
inline

Turn a CFG node into a GraphNode which is defined in VirtualCFG namespace.

Returns NULL if CFGNode is not present

Definition at line 53 of file staticCFG.h.

void StaticCFG::CFG::setStart ( SgNode node)
inline

Set the start node for graph building.

The valid nodes are SgProject, SgStatement, SgExpression and SgInitializedName.

Definition at line 74 of file staticCFG.h.


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