| 
|   | CFLVF (SVFIR *ir) | 
|   | 
| virtual void  | checkParameter () | 
|   | Parameter Checking.  
  | 
|   | 
| virtual void  | initialize () | 
|   | Initialize the grammar, graph, solver.  
  | 
|   | 
| virtual void  | finalize () | 
|   | Print grammar and graph.  
  | 
|   | 
| void  | buildCFLGraph () | 
|   | Build CFLGraph via VFG.  
  | 
|   | 
|   | CFLBase (SVFIR *ir, PointerAnalysis::PTATY pty) | 
|   | 
| virtual  | ~CFLBase () | 
|   | Destructor.  
  | 
|   | 
| virtual void  | buildCFLGrammar () | 
|   | Build Grammar from text file.  
  | 
|   | 
| virtual void  | normalizeCFLGrammar () | 
|   | Normalize grammar.  
  | 
|   | 
| CFLGraph *  | getCFLGraph () | 
|   | Get CFL graph.  
  | 
|   | 
| virtual void  | countSumEdges () | 
|   | Count the num of Nonterminal Edges.  
  | 
|   | 
| virtual void  | solve () | 
|   | Solving CFL Reachability.  
  | 
|   | 
| virtual void  | analyze () | 
|   | Perform analyze (main part of CFLR Analysis)  
  | 
|   | 
|   | BVDataPTAImpl (SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true) | 
|   | Constructor.  
  | 
|   | 
|   | ~BVDataPTAImpl () override=default | 
|   | Destructor.  
  | 
|   | 
| PersistentPointsToCache< PointsTo > &  | getPtCache () | 
|   | 
| const PointsTo &  | getPts (NodeID id) override | 
|   | 
| const NodeSet &  | getRevPts (NodeID nodeId) 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.  
  | 
|   | 
| AliasResult  | alias (NodeID node1, NodeID node2) override | 
|   | Interface expose to users of our pointer analysis, given PAGNodeID.  
  | 
|   | 
| 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 | 
|   | 
| 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 | 
|   | 
 | 
| enum   | PTBackingType { Mutable
, Persistent
 } | 
|   | How the PTData used is implemented.  More...
  | 
|   | 
| typedef PTData< NodeID, NodeSet, NodeID, PointsTo >  | PTDataTy | 
|   | 
| typedef DiffPTData< NodeID, NodeSet, NodeID, PointsTo >  | DiffPTDataTy | 
|   | 
| typedef DFPTData< NodeID, NodeSet, NodeID, PointsTo >  | DFPTDataTy | 
|   | 
| typedef VersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > >  | VersionedPTDataTy | 
|   | 
| typedef MutablePTData< NodeID, NodeSet, NodeID, PointsTo >  | MutPTDataTy | 
|   | 
| typedef MutableDiffPTData< NodeID, NodeSet, NodeID, PointsTo >  | MutDiffPTDataTy | 
|   | 
| typedef MutableDFPTData< NodeID, NodeSet, NodeID, PointsTo >  | MutDFPTDataTy | 
|   | 
| typedef MutableIncDFPTData< NodeID, NodeSet, NodeID, PointsTo >  | MutIncDFPTDataTy | 
|   | 
| typedef MutableVersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > >  | MutVersionedPTDataTy | 
|   | 
| typedef PersistentPTData< NodeID, NodeSet, NodeID, PointsTo >  | PersPTDataTy | 
|   | 
| typedef PersistentDiffPTData< NodeID, NodeSet, NodeID, PointsTo >  | PersDiffPTDataTy | 
|   | 
| typedef PersistentDFPTData< NodeID, NodeSet, NodeID, PointsTo >  | PersDFPTDataTy | 
|   | 
| typedef PersistentIncDFPTData< NodeID, NodeSet, NodeID, PointsTo >  | PersIncDFPTDataTy | 
|   | 
| typedef PersistentVersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > >  | PersVersionedPTDataTy | 
|   | 
| enum   | PTATY {  
  Andersen_BASE
, Andersen_WPA
, AndersenSCD_WPA
, AndersenSFR_WPA
,  
  AndersenWaveDiff_WPA
, Steensgaard_WPA
, CSCallString_WPA
, CSSummary_WPA
,  
  FSDATAFLOW_WPA
, FSSPARSE_WPA
, VFS_WPA
, FSCS_WPA
,  
  CFLFICI_WPA
, CFLFSCI_WPA
, CFLFSCS_WPA
, TypeCPP_WPA
,  
  FieldS_DDA
, FlowS_DDA
, PathS_DDA
, Cxt_DDA
,  
  Default_PTA
 
 } | 
|   | Pointer analysis type list.  More...
  | 
|   | 
| enum   | PTAImplTy { BaseImpl
, BVDataImpl
, CondImpl
 } | 
|   | Implementation type: BVDataPTAImpl or CondPTAImpl.  More...
  | 
|   | 
| typedef Set< const CallICFGNode * >  | CallSiteSet | 
|   | Indirect call edges type, map a callsite to a set of callees.  
  | 
|   | 
| typedef SVFIR::CallSiteToFunPtrMap  | CallSiteToFunPtrMap | 
|   | 
| typedef Set< const FunObjVar * >  | FunctionSet | 
|   | 
| typedef OrderedMap< const CallICFGNode *, FunctionSet >  | CallEdgeMap | 
|   | 
| typedef SCCDetection< CallGraph * >  | CallGraphSCC | 
|   | 
| typedef Set< const GlobalObjVar * >  | VTableSet | 
|   | 
| typedef Set< const FunObjVar * >  | VFunSet | 
|   | 
| static bool  | classof (const PointerAnalysis *pta) | 
|   | 
| static double  | timeOfBuildCFLGrammar = 0 | 
|   | Statistics.  
  | 
|   | 
| static double  | timeOfNormalizeGrammar = 0 | 
|   | 
| static double  | timeOfBuildCFLGraph = 0 | 
|   | 
| static double  | numOfTerminalEdges = 0 | 
|   | 
| static double  | numOfTemporaryNonterminalEdges = 0 | 
|   | 
| static double  | numOfNonterminalEdges = 0 | 
|   | 
| static double  | numOfStartEdges = 0 | 
|   | 
| static double  | numOfIteration = 1 | 
|   | 
| static double  | numOfChecks = 1 | 
|   | 
| static double  | timeOfSolving = 0 | 
|   | 
| static const std::string  | aliasTestMayAlias = "MAYALIAS" | 
|   | 
| static const std::string  | aliasTestMayAliasMangled = "_Z8MAYALIASPvS_" | 
|   | 
| static const std::string  | aliasTestNoAlias = "NOALIAS" | 
|   | 
| static const std::string  | aliasTestNoAliasMangled = "_Z7NOALIASPvS_" | 
|   | 
| static const std::string  | aliasTestPartialAlias = "PARTIALALIAS" | 
|   | 
| static const std::string  | aliasTestPartialAliasMangled = "_Z12PARTIALALIASPvS_" | 
|   | 
| static const std::string  | aliasTestMustAlias = "MUSTALIAS" | 
|   | 
| static const std::string  | aliasTestMustAliasMangled = "_Z9MUSTALIASPvS_" | 
|   | 
| static const std::string  | aliasTestFailMayAlias = "EXPECTEDFAIL_MAYALIAS" | 
|   | 
| static const std::string  | aliasTestFailMayAliasMangled = "_Z21EXPECTEDFAIL_MAYALIASPvS_" | 
|   | 
| static const std::string  | aliasTestFailNoAlias = "EXPECTEDFAIL_NOALIAS" | 
|   | 
| static const std::string  | aliasTestFailNoAliasMangled = "_Z20EXPECTEDFAIL_NOALIASPvS_" | 
|   | 
| PTDataTy *  | getPTDataTy () const | 
|   | Get points-to data structure.  
  | 
|   | 
| virtual bool  | updateCallGraph (const CallSiteToFunPtrMap &) | 
|   | Update callgraph. This should be implemented by its subclass.  
  | 
|   | 
| DiffPTDataTy *  | getDiffPTDataTy () const | 
|   | 
| DFPTDataTy *  | getDFPTDataTy () const | 
|   | 
| MutDFPTDataTy *  | getMutDFPTDataTy () const | 
|   | 
| VersionedPTDataTy *  | getVersionedPTDataTy () const | 
|   | 
| virtual void  | onTheFlyCallGraphSolve (const CallSiteToFunPtrMap &callsites, CallEdgeMap &newEdges) | 
|   | On the fly call graph construction.  
  | 
|   | 
| virtual void  | onTheFlyThreadCallGraphSolve (const CallSiteToFunPtrMap &callsites, CallEdgeMap &newForkEdges) | 
|   | On the fly thread call graph construction respecting forksite.  
  | 
|   | 
| virtual void  | normalizePointsTo () | 
|   | 
| const CallSiteToFunPtrMap &  | getIndirectCallsites () const | 
|   | Return all indirect callsites.  
  | 
|   | 
| NodeID  | getFunPtr (const CallICFGNode *cs) const | 
|   | Return function pointer PAGNode at a callsite cs.  
  | 
|   | 
| virtual void  | validateTests () | 
|   | Alias check functions to verify correctness of pointer analysis.  
  | 
|   | 
| virtual void  | validateSuccessTests (std::string fun) | 
|   | 
| virtual void  | validateExpectedFailureTests (std::string fun) | 
|   | 
| void  | resetObjFieldSensitive () | 
|   | Reset all object node as field-sensitive.  
  | 
|   | 
| SVFIR *  | svfir | 
|   | 
| CFLGraph *  | graph | 
|   | 
| GrammarBase *  | grammarBase | 
|   | 
| CFGrammar *  | grammar | 
|   | 
| CFLSolver *  | solver | 
|   | 
| bool  | print_stat | 
|   | User input flags.  
  | 
|   | 
| bool  | alias_validation | 
|   | Flag for validating points-to/alias results.  
  | 
|   | 
| u32_t  | OnTheFlyIterBudgetForStat | 
|   | Flag for iteration budget for on-the-fly statistics.  
  | 
|   | 
| PTATY  | ptaTy | 
|   | Pointer analysis Type.  
  | 
|   | 
| PTAImplTy  | ptaImplTy | 
|   | PTA implementation type.  
  | 
|   | 
| PTAStat *  | stat | 
|   | Statistics.  
  | 
|   | 
| CallGraph *  | callgraph | 
|   | Call graph used for pointer analysis.  
  | 
|   | 
| CallGraphSCC *  | callGraphSCC | 
|   | SCC for PTACallGraph.  
  | 
|   | 
| ICFG *  | icfg | 
|   | Interprocedural control-flow graph.  
  | 
|   | 
| CommonCHGraph *  | chgraph | 
|   | CHGraph.  
  | 
|   | 
| static SVFIR *  | pag = nullptr | 
|   | SVFIR.  
  | 
|   | 
Definition at line 41 of file CFLVF.h.