30#ifndef INCLUDE_CFL_CFLALIAS_H_
31#define INCLUDE_CFL_CFLALIAS_H_
105 if((*inEdge)->getEdgeKind() == 0)
121 if (
edge !=
nullptr )
const PointsTo & getPts(NodeID id) override
virtual bool addPts(NodeID id, NodeID ptd)
virtual const NodeSet & getRevPts(NodeID nodeId)
Given an object, get all the nodes having whose pointsto contains the object.
virtual void finalize()
Print grammar and graph.
virtual bool addCopyEdge(NodeID src, NodeID dst)
Need Original one for virtual table.
virtual void onTheFlyCallGraphSolve(const CallSiteToFunPtrMap &callsites, CallEdgeMap &newEdges)
On the fly call graph construction.
virtual void initializeSolver()
Initialize Solver.
OrderedMap< const CallICFGNode *, NodeID > CallSite2DummyValPN
void connectCaller2CalleeParams(const CallICFGNode *cs, const SVFFunction *F)
Connect formal and actual parameters for indirect callsites.
void heapAllocatorViaIndCall(const CallICFGNode *cs)
virtual void solve()
Solving CFL Reachability.
virtual const PointsTo & getCFLPts(NodeID ptr)
Get points-to targets of a pointer. V In this context.
virtual bool updateCallGraph(const CallSiteToFunPtrMap &callsites)
Update call graph for the input indirect callsites.
virtual AliasResult alias(const SVFValue *v1, const SVFValue *v2)
Interface exposed to users of our Alias analysis, given Value infos.
CallSite2DummyValPN callsite2DummyValPN
Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocat...
virtual void initialize()
Initialize the grammar, graph, solver.
virtual AliasResult alias(NodeID node1, NodeID node2)
Interface exposed to users of our Alias analysis, given PAGNodeID.
Kind getStartKind() const
virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)
virtual const CFLEdge * hasEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)
virtual bool pushIntoWorklist(const CFLEdge *item)
NodeType * getGNode(NodeID id) const
Get a node.
GEdgeSetTy::iterator iterator
Kind strToKind(std::string str) const
NodeID getValueNode(const SVFValue *V)
virtual void initializeSolver()
Initialize POCR Solver.
virtual void initializeSolver()
Initialize POCRHybrid Solver.
@ CFLFICI_WPA
Flow-, context-, insensitive CFL-reachability-based analysis.
OrderedMap< const CallICFGNode *, FunctionSet > CallEdgeMap
SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap
GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy
SVFStmt::SVFStmtSetTy & getIncomingEdges(SVFStmt::PEDGEK kind)
Get incoming SVFIR statements (edges)
llvm::IRBuilder IRBuilder