101 return "CFL Reachability Graph";
117 template<
class EdgeIter>
134 rawstr <<
"color=purple,label=" <<
'"' <<
"Gep_" <<
edge->getEdgeAttri() <<
'"';
138 rawstr <<
"color=purple,label=" <<
'"' <<
"VGep" <<
'"';
150 rawstr <<
"color=Turquoise";
159 template<
class EdgeIter>
166 rawstr <<
"Edge label: " <<
edge->getEdgeKind() <<
" ";
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)
llvm::IRBuilder IRBuilder
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)