| 
    Static Value-Flow Analysis
    
   | 
 
#include <CFLAlias.h>
  
Public Member Functions | |
| POCRHybrid (SVFIR *ir) | |
| virtual void | initializeSolver () | 
| Initialize POCRHybrid Solver.   | |
  Public Member Functions inherited from SVF::CFLAlias | |
| CFLAlias (SVFIR *ir) | |
| virtual void | initialize () | 
| Initialize the grammar, graph, solver.   | |
| virtual void | finalize () | 
| Print grammar and graph.   | |
| virtual void | solve () | 
| Solving CFL Reachability.   | |
| virtual AliasResult | alias (NodeID node1, NodeID node2) | 
| Interface exposed to users of our Alias analysis, given PAGNodeID.   | |
| virtual const PointsTo & | getCFLPts (NodeID ptr) | 
| Get points-to targets of a pointer. V In this context.   | |
| virtual bool | addCopyEdge (NodeID src, NodeID dst) | 
| Need Original one for virtual table.   | |
| virtual const NodeSet & | getRevPts (NodeID nodeId) | 
| Given an object, get all the nodes having whose pointsto contains the object.   | |
| virtual bool | updateCallGraph (const CallSiteToFunPtrMap &callsites) | 
| Update call graph for the input indirect callsites.   | |
| virtual void | onTheFlyCallGraphSolve (const CallSiteToFunPtrMap &callsites, CallEdgeMap &newEdges) | 
| On the fly call graph construction.   | |
| void | connectCaller2CalleeParams (const CallICFGNode *cs, const FunObjVar *F) | 
| Connect formal and actual parameters for indirect callsites.   | |
| void | heapAllocatorViaIndCall (const CallICFGNode *cs) | 
  Public Member Functions inherited from SVF::CFLBase | |
| CFLBase (SVFIR *ir, PointerAnalysis::PTATY pty) | |
| virtual | ~CFLBase () | 
| Destructor.   | |
| virtual void | checkParameter () | 
| Parameter Checking.   | |
| virtual void | buildCFLGrammar () | 
| Build Grammar from text file.   | |
| virtual void | buildCFLGraph () | 
| Build CFLGraph based on Option.   | |
| virtual void | normalizeCFLGrammar () | 
| Normalize grammar.   | |
| CFLGraph * | getCFLGraph () | 
| Get CFL graph.   | |
| virtual void | countSumEdges () | 
| Count the num of Nonterminal Edges.   | |
| virtual void | analyze () | 
| Perform analyze (main part of CFLR Analysis)   | |
  Public Member Functions inherited from SVF::BVDataPTAImpl | |
| BVDataPTAImpl (SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true) | |
| Constructor.   | |
| ~BVDataPTAImpl () override=default | |
| Destructor.   | |
| PersistentPointsToCache< PointsTo > & | getPtCache () | 
| const PointsTo & | getPts (NodeID id) override | 
| virtual void | clearPts (NodeID id, NodeID element) | 
| Remove element from the points-to set of id.   | |
| virtual void | clearFullPts (NodeID id) | 
| Clear points-to set of id.   | |
| virtual bool | unionPts (NodeID id, const PointsTo &target) | 
| virtual bool | unionPts (NodeID id, NodeID ptd) | 
| virtual bool | addPts (NodeID id, NodeID ptd) | 
| virtual void | clearAllPts () | 
| Clear all data.   | |
| virtual void | expandFIObjs (const PointsTo &pts, PointsTo &expandedPts) | 
| Expand FI objects.   | |
| virtual void | expandFIObjs (const NodeBS &pts, NodeBS &expandedPts) | 
| TODO: remove repetition.   | |
| void | remapPointsToSets (void) | 
| Remap all points-to sets to use the current mapping.   | |
| virtual void | writeToFile (const std::string &filename) | 
| Interface for analysis result storage on filesystem.   | |
| virtual void | writeObjVarToFile (const std::string &filename) | 
| virtual void | writePtsResultToFile (std::fstream &f) | 
| virtual void | writeGepObjVarMapToFile (std::fstream &f) | 
| virtual bool | readFromFile (const std::string &filename) | 
| virtual void | readPtsResultFromFile (std::ifstream &f) | 
| virtual void | readGepObjVarMapFromFile (std::ifstream &f) | 
| virtual void | readAndSetObjFieldSensitivity (std::ifstream &f, const std::string &delimiterStr) | 
| AliasResult | alias (const SVFVar *V1, const SVFVar *V2) override | 
| Interface expose to users of our pointer analysis, given Value infos.   | |
| virtual AliasResult | alias (const PointsTo &pts1, const PointsTo &pts2) | 
| Interface expose to users of our pointer analysis, given two pts.   | |
| void | dumpCPts () override | 
| dump and debug, print out conditional pts   | |
| void | dumpTopLevelPtsTo () override | 
| void | dumpAllPts () override | 
  Public Member Functions inherited from SVF::PointerAnalysis | |
| ICFG * | getICFG () const | 
| Get ICFG.   | |
| u32_t | getNumOfResolvedIndCallEdge () const | 
| Return number of resolved indirect call edges.   | |
| CallGraph * | getCallGraph () const | 
| Return call graph.   | |
| CallGraphSCC * | getCallGraphSCC () const | 
| Return call graph SCC.   | |
| PointerAnalysis (SVFIR *pag, PTATY ty=Default_PTA, bool alias_check=true) | |
| Constructor.   | |
| PTATY | getAnalysisTy () const | 
| Type of pointer analysis.   | |
| PTAImplTy | getImplTy () const | 
| Return implementation type of the pointer analysis.   | |
| bool | printStat () | 
| Whether print statistics.   | |
| void | disablePrintStat () | 
| Whether print statistics.   | |
| CallEdgeMap & | getIndCallMap () | 
| Get callees from an indirect callsite.   | |
| bool | hasIndCSCallees (const CallICFGNode *cs) const | 
| const FunctionSet & | getIndCSCallees (const CallICFGNode *cs) const | 
| virtual void | resolveIndCalls (const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges) | 
| Resolve indirect call edges.   | |
| void | callGraphSCCDetection () | 
| PTACallGraph SCC related methods.   | |
| NodeID | getCallGraphSCCRepNode (NodeID id) const | 
| Get SCC rep node of a SVFG node.   | |
| bool | inSameCallGraphSCC (const FunObjVar *fun1, const FunObjVar *fun2) | 
| Return TRUE if this edge is inside a PTACallGraph SCC, i.e., src node and dst node are in the same SCC on the SVFG.   | |
| bool | isInRecursion (const FunObjVar *fun) const | 
| bool | isLocalVarInRecursiveFun (NodeID id) const | 
| Whether a local variable is in function recursions.   | |
| virtual const std::string | PTAName () const | 
| Return PTA name.   | |
| CommonCHGraph * | getCHGraph () const | 
| get CHGraph   | |
| void | getVFnsFromCHA (const CallICFGNode *cs, VFunSet &vfns) | 
| void | getVFnsFromPts (const CallICFGNode *cs, const PointsTo &target, VFunSet &vfns) | 
| void | connectVCallToVFns (const CallICFGNode *cs, const VFunSet &vfns, CallEdgeMap &newEdges) | 
| virtual void | resolveCPPIndCalls (const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges) | 
| Resolve cpp indirect call edges.   | |
| SVFIR * | getPAG () const | 
| PTAStat * | getStat () const | 
| Get PTA stat.   | |
| OrderedNodeSet & | getAllValidPtrs () | 
| Get all Valid Pointers for resolution.   | |
| virtual void | computeDDAPts (NodeID) | 
| Compute points-to results on-demand, overridden by derived classes.   | |
| void | printIndCSTargets (const CallICFGNode *cs, const FunctionSet &targets) | 
| Print targets of a function pointer.   | |
| virtual void | dumpPts (NodeID ptr, const PointsTo &pts) | 
| void | printIndCSTargets () | 
| void | dumpAllTypes () | 
| void | dumpStat () | 
| Dump the statistics.   | |
| bool | containBlackHoleNode (const PointsTo &pts) | 
| Determine whether a points-to contains a black hole or constant node.   | |
| bool | containConstantNode (const PointsTo &pts) | 
| virtual bool | isBlkObjOrConstantObj (NodeID ptd) const | 
| bool | isHeapMemObj (NodeID id) const | 
| Whether this object is heap or array.   | |
| bool | isArrayMemObj (NodeID id) const | 
| bool | isFIObjNode (NodeID id) const | 
| NodeID | getBaseObjVar (NodeID id) | 
| NodeID | getFIObjVar (NodeID id) | 
| NodeID | getGepObjVar (NodeID id, const APOffset &ap) | 
| virtual const NodeBS & | getAllFieldsObjVars (NodeID id) | 
| void | setObjFieldInsensitive (NodeID id) | 
| bool | isFieldInsensitive (NodeID id) const | 
Definition at line 156 of file CFLAlias.h.
      
  | 
  inline | 
Definition at line 159 of file CFLAlias.h.
      
  | 
  virtual | 
Initialize POCRHybrid Solver.
Reimplemented from SVF::CFLAlias.
Definition at line 252 of file CFLAlias.cpp.