|
typedef CondVar< Cond > | CVar |
|
typedef CondStdSet< CVar > | CPtSet |
|
typedef PTData< CVar, Set< CVar >, CVar, CPtSet > | PTDataTy |
|
typedef MutablePTData< CVar, Set< CVar >, CVar, CPtSet > | MutPTDataTy |
|
typedef Map< NodeID, PointsTo > | PtrToBVPtsMap |
|
typedef Map< NodeID, NodeSet > | PtrToNSMap |
| map a pointer to its BitVector points-to representation More...
|
|
typedef Map< NodeID, CPtSet > | PtrToCPtsMap |
|
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. More...
|
|
typedef SVFIR::CallSiteToFunPtrMap | CallSiteToFunPtrMap |
|
typedef Set< const SVFFunction * > | FunctionSet |
|
typedef OrderedMap< const CallICFGNode *, FunctionSet > | CallEdgeMap |
|
typedef SCCDetection< PTACallGraph * > | CallGraphSCC |
|
typedef Set< const SVFGlobalValue * > | VTableSet |
|
typedef Set< const SVFFunction * > | VFunSet |
|
|
| CondPTAImpl (SVFIR *pag, PointerAnalysis::PTATY type) |
| map a pointer to its conditional points-to set More...
|
|
virtual | ~CondPTAImpl () |
| Destructor. More...
|
|
void | destroy () |
| Release memory. More...
|
|
PTDataTy * | getPTDataTy () const |
| Get points-to data. More...
|
|
MutPTDataTy * | getMutPTDataTy () const |
|
bool | hasPtsMap (void) const |
|
const MutPTDataTy::PtsMap & | getPtsMap () const |
|
ICFG * | getICFG () const |
| Get ICFG. More...
|
|
u32_t | getNumOfResolvedIndCallEdge () const |
| Return number of resolved indirect call edges. More...
|
|
PTACallGraph * | getCallGraph () const |
| Return call graph. More...
|
|
CallGraphSCC * | getCallGraphSCC () const |
| Return call graph SCC. More...
|
|
| PointerAnalysis (SVFIR *pag, PTATY ty=Default_PTA, bool alias_check=true) |
| Constructor. More...
|
|
PTATY | getAnalysisTy () const |
| Type of pointer analysis. More...
|
|
PTAImplTy | getImplTy () const |
| Return implementation type of the pointer analysis. More...
|
|
bool | printStat () |
| Whether print statistics. More...
|
|
void | disablePrintStat () |
| Whether print statistics. More...
|
|
CallEdgeMap & | getIndCallMap () |
| Get callees from an indirect callsite. More...
|
|
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. More...
|
|
void | callGraphSCCDetection () |
| PTACallGraph SCC related methods. More...
|
|
NodeID | getCallGraphSCCRepNode (NodeID id) const |
| Get SCC rep node of a SVFG node. More...
|
|
bool | inSameCallGraphSCC (const SVFFunction *fun1, const SVFFunction *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. More...
|
|
bool | isInRecursion (const SVFFunction *fun) const |
|
bool | isLocalVarInRecursiveFun (NodeID id) const |
| Whether a local variable is in function recursions. More...
|
|
virtual const std::string | PTAName () const |
| Return PTA name. More...
|
|
CommonCHGraph * | getCHGraph () const |
| get CHGraph More...
|
|
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. More...
|
|
SVFIR * | getPAG () const |
|
PTAStat * | getStat () const |
| Get PTA stat. More...
|
|
SVFModule * | getModule () const |
| Module. More...
|
|
OrderedNodeSet & | getAllValidPtrs () |
| Get all Valid Pointers for resolution. More...
|
|
virtual | ~PointerAnalysis () |
| Destructor. More...
|
|
virtual void | initialize () |
| Initialization of a pointer analysis, including building symbol table and SVFIR etc. More...
|
|
virtual void | analyze ()=0 |
| Start Analysis here (main part of pointer analysis). It needs to be implemented in child class. More...
|
|
virtual void | computeDDAPts (NodeID) |
| Compute points-to results on-demand, overridden by derived classes. More...
|
|
void | printIndCSTargets (const CallICFGNode *cs, const FunctionSet &targets) |
| Print targets of a function pointer. More...
|
|
virtual void | dumpAllPts () |
|
virtual void | dumpPts (NodeID ptr, const PointsTo &pts) |
|
void | printIndCSTargets () |
|
void | dumpAllTypes () |
|
void | dumpStat () |
| Dump the statistics. More...
|
|
bool | containBlackHoleNode (const PointsTo &pts) |
| Determine whether a points-to contains a black hole or constant node. More...
|
|
bool | containConstantNode (const PointsTo &pts) |
|
virtual bool | isBlkObjOrConstantObj (NodeID ptd) const |
|
bool | isHeapMemObj (NodeID id) const |
| Whether this object is heap or array. More...
|
|
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 |
|
|
static bool | classof (const PointerAnalysis *pta) |
|
PTDataTy * | ptD |
| Points-to data. More...
|
|
bool | normalized |
| Normalized flag. More...
|
|
PtrToBVPtsMap | ptrToBVPtsMap |
| Normal points-to representation (without conditions) More...
|
|
PtrToNSMap | objToNSRevPtsMap |
| Normal points-to representation (without conditions) More...
|
|
PtrToCPtsMap | ptrToCPtsMap |
| Conditional points-to representation (with conditions) More...
|
|
virtual const CPtSet & | getPts (CVar id) |
|
virtual const Set< CVar > & | getRevPts (CVar nodeId) |
|
virtual void | clearPts () |
| Clear all data. More...
|
|
bool | overlap (const CPtSet &cpts1, const CPtSet &cpts2) const |
| Whether cpts1 and cpts2 have overlap points-to targets. More...
|
|
void | expandFIObjs (const CPtSet &cpts, CPtSet &expandedCpts) |
| Expand all fields of an aggregate in all points-to sets. More...
|
|
virtual void | dumpCPts () |
| Print out conditional pts. More...
|
|
virtual PointsTo | getBVPointsTo (const CPtSet &cpts) const |
| Given a conditional pts return its bit vector points-to. More...
|
|
virtual PointsTo & | getPts (NodeID ptr) |
| Given a pointer return its bit vector points-to. More...
|
|
virtual const CPtSet & | getCondPointsTo (NodeID ptr) |
| Given a pointer return its conditional points-to. More...
|
|
virtual NodeSet & | getRevPts (NodeID obj) |
| Given an object return all pointers points to this object. More...
|
|
virtual AliasResult | alias (const SVFValue *V1, const SVFValue *V2) |
| Interface expose to users of our pointer analysis, given Value infos. More...
|
|
virtual AliasResult | alias (NodeID node1, NodeID node2) |
| Interface expose to users of our pointer analysis, given two pointers. More...
|
|
virtual AliasResult | alias (const CVar &var1, const CVar &var2) |
| Interface expose to users of our pointer analysis, given conditional variables. More...
|
|
virtual AliasResult | alias (const CPtSet &pts1, const CPtSet &pts2) |
| Interface expose to users of our pointer analysis, given two conditional points-to sets. More...
|
|
bool | containBlackHoleNode (const CPtSet &cpts) |
| Test blk node for cpts. More...
|
|
bool | containConstantNode (const CPtSet &cpts) |
| Test constant node for cpts. More...
|
|
virtual bool | isCondCompatible (const Cond &cxt1, const Cond &cxt2, bool singleton) const =0 |
| Whether two conditions are compatible (to be implemented by child class) More...
|
|
void | dumpTopLevelPtsTo () |
| Dump points-to information of top-level pointers. More...
|
|
virtual void | finalize () |
| Finalization of pointer analysis, and normalize points-to information to Bit Vector representation. More...
|
|
virtual bool | unionPts (CVar id, const CPtSet &target) |
|
virtual bool | unionPts (CVar id, CVar ptd) |
|
virtual bool | addPts (CVar id, CVar ptd) |
|
bool | mustAlias (const CVar &var1, const CVar &var2) |
| Internal interface to be used for conditional points-to set queries. More...
|
|
bool | contains (const CPtSet &cpts1, const CPtSet &cpts2) |
|
bool | isSameVar (const CVar &var1, const CVar &var2) const |
| Whether two pointers/objects are the same one by considering their conditions. More...
|
|
virtual void | normalizePointsTo () |
| Normalize points-to information to BitVector/conditional representation. More...
|
|
template<class Cond>
class SVF::CondPTAImpl< Cond >
Pointer analysis implementation which uses conditional points-to map data structure (context/path sensitive analysis)
Definition at line 244 of file PointerAnalysisImpl.h.