46 CFG() : graph_(NULL), start_(NULL), entry_(NULL), exit_(NULL) {}
58 : graph_(NULL), start_(node), entry_(NULL), exit_(NULL), is_filtered_(is_filtered)
66 { clearNodesAndEdges(); }
87 if (is_filtered_) buildFilteredCFG();
92 virtual void buildFullCFG();
95 virtual void buildFilteredCFG();
99 std::vector<SgDirectedGraphEdge*> getOutEdges(
SgNode* node,
int index);
100 std::vector<SgDirectedGraphEdge*> getInEdges(
SgNode* node,
int index);
104 std::vector<SgDirectedGraphEdge*> getOutEdges(
SgGraphNode* node);
105 std::vector<SgDirectedGraphEdge*> getInEdges(
SgGraphNode* node);
119 template <
class NodeT,
class EdgeT>
120 void buildCFG(NodeT n, std::map<NodeT, SgGraphNode*>& all_nodes, std::set<NodeT>& explored);
123 void clearNodesAndEdges();
128 virtual void processNodes(std::ostream & o,
SgGraphNode* n, std::set<SgGraphNode*>& explored);
156 template <
class EdgeT>