10 #ifndef EXTERNALPAG_H_ 11 #define EXTERNALPAG_H_ 57 static std::vector<std::pair<std::string, std::string>>
79 ExternalPAG(std::string functionName) : functionName(functionName),
80 returnNode(-1), hasReturn(false) {}
97 static void dumpFunctions(std::vector<std::string> functions);
static Map< const SVFFunction *, Map< int, PAGNode * > > functionToExternalPAGEntries
std::set< Key, Compare, Allocator > OrderedSet
NodeID returnNode
Node from which return edges connect.
std::string functionName
Name of the function this external PAG represents.
llvm::cl::list< std::string > DumpPAGFunctions
OrderedSet< std::tuple< NodeID, NodeID, std::string, int > > edges
bool hasReturnNode() const
Does this function have a return node?
Map< int, NodeID > argNodes
NodeID getReturnNode() const
ExternalPAG(std::string functionName)
std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map
NodeSet & getValueNodes()
static bool hasExternalPAG(const SVFFunction *function)
Whether an external PAG implementing function exists.
Map< int, NodeID > & getArgNodes()
void setReturnNode(NodeID returnNode)
static void initialise(SVFModule *svfModule)
static Map< const SVFFunction *, PAGNode * > functionToExternalPAGReturns
bool hasReturn
Whether this function has a return or not.
NodeSet & getObjectNodes()
std::string getFunctionName() const
static void dumpFunctions(std::vector< std::string > functions)
Dump individual PAGs of specified functions. Currently to outs().
static std::vector< std::pair< std::string, std::string > > parseExternalPAGs(llvm::cl::list< std::string > &extpagsArgs)
void readFromFile(std::string filename)
OrderedSet< std::tuple< NodeID, NodeID, std::string, int > > & getEdges()
bool addExternalPAG(const SVFFunction *function)
static bool connectCallsiteToExternalPAG(CallSite *cs)