101 return "CFL Reachability Graph";
107 std::stringstream rawstr(str);
108 rawstr <<
"Node ID: " << node->
getId() <<
" ";
117 template<
class EdgeIter>
120 CFLEdge* edge = *(EI.getCurrent());
121 assert(edge &&
"No edge found!!");
123 std::stringstream rawstr(str);
126 rawstr <<
"color=green";
130 rawstr <<
"color=black";
134 rawstr <<
"color=purple,label=" <<
'"' <<
"Gep_" << edge->
getEdgeAttri() <<
'"';
138 rawstr <<
"color=purple,label=" <<
'"' <<
"VGep" <<
'"';
142 rawstr <<
"color=blue";
146 rawstr <<
"color=red";
150 rawstr <<
"color=Turquoise";
154 rawstr <<
"style=invis";
159 template<
class EdgeIter>
162 CFLEdge* edge = *(EI.getCurrent());
163 assert(edge &&
"No edge found!!");
165 std::stringstream rawstr(str);
166 rawstr <<
"Edge label: " << edge->
getEdgeKind() <<
" ";
GEdgeKind getEdgeKindWithMask() const
GEdgeKind getEdgeKind() const
GEdgeKind getEdgeAttri() const
virtual void addCFLNode(NodeID id, CFLNode *node)
Kind getStartKind() const
virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)
void dump(const std::string &filename)
virtual const CFLEdge * hasEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)
bool addIngoingEdge(CFLEdge *inEdge)
bool addOutgoingEdge(CFLEdge *OutEdge)
void addGNode(NodeID id, NodeType *node)
Add a Node.
static void WriteGraphToFile(SVF::OutStream &O, const std::string &GraphName, const GraphType >, bool simple=false)
NodeID getId() const
Get ID.
std::ostream & outs()
Overwrite llvm::outs()
void ViewGraph(const GraphType &G, const std::string &name, bool ShortNames=false, GraphProgram::Name Program=GraphProgram::DOT)
static std::string getEdgeSourceLabel(NodeType *, EdgeIter EI)
static std::string getNodeAttributes(CFLNode *node, CFLGraph *)
static std::string getNodeLabel(CFLNode *node, CFLGraph *)
Return function name;.
DOTGraphTraits(bool isSimple=false)
static std::string getGraphName(CFLGraph *)
Return name of the graph.
static std::string getEdgeAttributes(CFLNode *, EdgeIter EI, CFLGraph *graph)