92 std::unique_ptr<PointerAnalysis>
_pta;
virtual AliasResult alias(const SVFValue *V1, const SVFValue *V2)
Interface expose to users of our pointer analysis, given Value infos.
bool edgeInSVFGSCC(const SVFGSCC *svfgSCC, const SVFGEdge *edge)
Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...
SCCDetection< SVFG * > SVFGSCC
std::unique_ptr< PointerAnalysis > _pta
pointer analysis to be executed.
DDAClient * _client
DDA client used.
virtual void selectClient(SVFModule *module)
Select a client.
bool edgeInCallGraphSCC(PointerAnalysis *pta, const SVFGEdge *edge)
Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...
void runPointerAnalysis(SVFIR *module, u32_t kind)
Create pointer analysis according to specified kind and analyze the module.
virtual void runOnModule(SVFIR *module)
We start from here.
std::vector< PointerAnalysis * > PTAVector
OrderedSet< const SVFGEdge * > SVFGEdgeSet
void initCxtInsensitiveEdges(PointerAnalysis *pta, const SVFG *svfg, const SVFGSCC *svfgSCC, SVFGEdgeSet &insensitveEdges)
Context insensitive Edge for DDA.
virtual std::string getPassName() const
Pass name.
void collectCxtInsenEdgeForVFCycle(PointerAnalysis *pta, const SVFG *svfg, const SVFGSCC *svfgSCC, SVFGEdgeSet &insensitveEdges)
void collectCxtInsenEdgeForRecur(PointerAnalysis *pta, const SVFG *svfg, SVFGEdgeSet &insensitveEdges)
void printQueryPTS()
Print queries' pts.
llvm::IRBuilder IRBuilder