| Static Value-Flow Analysis
    | 
#include <Andersen.h>
 
  
| Static Public Member Functions | |
| static bool | classof (const AndersenBase *) | 
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static bool | classof (const PointerAnalysis *pta) | 
|  Static Public Member Functions inherited from SVF::BVDataPTAImpl | |
| static bool | classof (const PointerAnalysis *pta) | 
| Public Attributes | |
| NodeBS | redundantGepNodes | 
|  Public Attributes inherited from SVF::WPASolver< GraphType > | |
| u32_t | numOfIteration | 
| num of iterations during constraint solving | |
| Protected Member Functions | |
| void | heapAllocatorViaIndCall (const CallICFGNode *cs, NodePairSet &cpySrcNodes) | 
|  Protected Member Functions inherited from SVF::WPASolver< GraphType > | |
| WPASolver () | |
| Constructor. | |
| virtual | ~WPASolver ()=default | 
| Destructor. | |
| SCC * | getSCCDetector () const | 
| Get SCC detector. | |
| const GraphType | graph () | 
| Get/Set graph methods. | |
| void | setGraph (GraphType g) | 
| virtual NodeStack & | SCCDetect () | 
| SCC detection. | |
| virtual NodeStack & | SCCDetect (NodeSet &candidates) | 
| virtual void | initWorklist () | 
| virtual void | solveWorklist () | 
| virtual void | processNode (NodeID) | 
| Following methods are to be implemented in child class, in order to achieve a fully worked PTA. | |
| virtual void | collapseFields () | 
| collapse positive weight cycles of a graph | |
| virtual void | propagate (GNODE *v) | 
| virtual bool | propFromSrcToDst (GEDGE *) | 
| Propagate information from source to destination node, to be implemented in the child class. | |
| NodeID | popFromWorklist () | 
| Worklist operations. | |
| virtual void | pushIntoWorklist (NodeID id) | 
| bool | isWorklistEmpty () | 
| bool | isInWorklist (NodeID id) | 
| GNODE * | Node (NodeID id) | 
| Get node on the graph. | |
| NodeID | Node_Index (GNODE node) | 
| Get node ID. | |
|  Protected Member Functions inherited from SVF::BVDataPTAImpl | |
| PTDataTy * | getPTDataTy () const | 
| Get points-to data structure. | |
| void | finalize () override | 
| Finalization of pointer analysis, and normalize points-to information to Bit Vector representation. | |
| 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. | |
|  Protected Member Functions inherited from SVF::PointerAnalysis | |
| 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. | |
| Protected Attributes | |
| ConstraintGraph * | consCG | 
| Constraint Graph. | |
| CallSite2DummyValPN | callsite2DummyValPN | 
|  Protected Attributes inherited from SVF::WPASolver< GraphType > | |
| bool | reanalyze | 
| Reanalyze if any constraint value changed. | |
| u32_t | iterationForPrintStat | 
| print out statistics for i-th iteration | |
| GraphType | _graph | 
| Graph. | |
| std::unique_ptr< SCC > | scc | 
| SCC. | |
| WorkList | worklist | 
| Worklist for resolution. | |
|  Protected Attributes inherited from SVF::PointerAnalysis | |
| 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. | |
| Additional Inherited Members | |
|  Static Protected Attributes inherited from SVF::PointerAnalysis | |
| static SVFIR * | pag = nullptr | 
| SVFIR. | |
Definition at line 56 of file Andersen.h.
Definition at line 59 of file Andersen.h.
| 
 | inline | 
Constructor.
Definition at line 64 of file Andersen.h.
| 
 | override | 
Add copy edge on constraint graph.
Implemented in SVF::Andersen, SVF::AndersenSCD, SVF::Steensgaard, and SVF::TypeAnalysis.
| 
 | overridevirtual | 
Andersen analysis.
Andersen analysis
Implements SVF::PointerAnalysis.
Reimplemented in SVF::TypeAnalysis.
Definition at line 133 of file Andersen.cpp.
| 
 | inlinestatic | 
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 104 of file Andersen.h.
| 
 | inlinestatic | 
Definition at line 108 of file Andersen.h.
| void AndersenBase::cleanConsCG | ( | NodeID | id | ) | 
remove redundant gepnodes in constraint graph
Definition at line 180 of file Andersen.cpp.
| 
 | virtual | 
Connect formal and actual parameters for indirect callsites.
| 
 | virtual | 
Connect formal and actual parameters for indirect forksites.
Connect formal and actual parameters for indirect forksites
Definition at line 244 of file Andersen.cpp.
| 
 | overridevirtual | 
Finalize analysis.
Finalize analysis
dump constraint graph if PAGDotGraph flag is enabled
Reimplemented from SVF::PointerAnalysis.
Reimplemented in SVF::Andersen, and SVF::TypeAnalysis.
Definition at line 89 of file Andersen.cpp.
| 
 | inline | 
| 
 | protected | 
| 
 | overridevirtual | 
Initialize analysis.
Initialize analysis
Build SVFIR
Create statistic class
Build Constraint Graph
Reimplemented from SVF::PointerAnalysis.
Reimplemented in SVF::Andersen, SVF::AndersenWaveDiff, SVF::AndersenSFR, and SVF::TypeAnalysis.
Definition at line 73 of file Andersen.cpp.
| 
 | overridevirtual | 
Normalize points-to information for field-sensitive analysis, i.e., replace fieldObj with baseObj if it is field-insensitive
Normalize points-to information for field-sensitive analysis
Reimplemented from SVF::BVDataPTAImpl.
| 
 | inline | 
dump statistics
Definition at line 142 of file Andersen.h.
| 
 | virtual | 
Andersen analysis: read pointer analysis result from file
Definition at line 157 of file Andersen.cpp.
SCC methods.
Reimplemented from SVF::WPASolver< GraphType >.
Reimplemented in SVF::Steensgaard.
Definition at line 128 of file Andersen.h.
Definition at line 132 of file Andersen.h.
| 
 | virtual | 
Andersen analysis: solve constraints and write pointer analysis result to file
Initialization for the Solver
Definition at line 168 of file Andersen.cpp.
| 
 | virtual | 
Definition at line 100 of file Andersen.cpp.
| 
 | overridevirtual | 
Update call graph.
nodes as a src of a generated new copy edge
Reimplemented from SVF::BVDataPTAImpl.
Reimplemented in SVF::AndersenSCD.
Definition at line 190 of file Andersen.cpp.
| 
 | virtual | 
Update thread call graph.
Definition at line 224 of file Andersen.cpp.
| 
 | static | 
Definition at line 168 of file Andersen.h.
| 
 | protected | 
Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocator
Definition at line 179 of file Andersen.h.
| 
 | protected | 
Constraint Graph.
Definition at line 177 of file Andersen.h.
| 
 | static | 
Definition at line 169 of file Andersen.h.
| 
 | static | 
Definition at line 162 of file Andersen.h.
| 
 | static | 
Statistics.
Definition at line 156 of file Andersen.h.
| 
 | static | 
Number of processed Addr edge.
Definition at line 157 of file Andersen.h.
| 
 | static | 
Number of processed Copy edge.
Definition at line 158 of file Andersen.h.
| 
 | static | 
Number of processed Gep edge.
Definition at line 159 of file Andersen.h.
| 
 | static | 
Number of processed Load edge.
Definition at line 160 of file Andersen.h.
| 
 | static | 
Definition at line 164 of file Andersen.h.
| 
 | static | 
Number of processed Store edge.
Definition at line 161 of file Andersen.h.
| NodeBS SVF::AndersenBase::redundantGepNodes | 
Definition at line 152 of file Andersen.h.
| 
 | static | 
Definition at line 167 of file Andersen.h.
| 
 | static | 
Definition at line 170 of file Andersen.h.
| 
 | static | 
Definition at line 171 of file Andersen.h.
| 
 | static | 
Definition at line 165 of file Andersen.h.
| 
 | static | 
Definition at line 166 of file Andersen.h.
| 
 | static | 
Definition at line 172 of file Andersen.h.