svf-lib 1.0.732 → 1.0.736
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-linux/Release-build/lib/libSvf.a +0 -0
- package/SVF-linux/include/DDA/ContextDDA.h +1 -1
- package/SVF-linux/include/DDA/DDAClient.h +8 -8
- package/SVF-linux/include/DDA/DDAVFSolver.h +5 -5
- package/SVF-linux/include/DDA/FlowDDA.h +1 -1
- package/SVF-linux/include/Graphs/ConsG.h +6 -6
- package/SVF-linux/include/Graphs/ConsGEdge.h +2 -2
- package/SVF-linux/include/Graphs/ConsGNode.h +1 -1
- package/SVF-linux/include/Graphs/ExternalPAG.h +14 -14
- package/SVF-linux/include/Graphs/GenericGraph.h +1 -1
- package/SVF-linux/include/Graphs/ICFGNode.h +14 -14
- package/SVF-linux/include/Graphs/IRGraph.h +236 -0
- package/SVF-linux/include/Graphs/OfflineConsG.h +1 -1
- package/SVF-linux/include/Graphs/SVFG.h +1 -1
- package/SVF-linux/include/Graphs/SVFGOPT.h +3 -3
- package/SVF-linux/include/Graphs/VFG.h +37 -52
- package/SVF-linux/include/Graphs/VFGNode.h +2 -3
- package/SVF-linux/include/MSSA/MemRegion.h +11 -11
- package/SVF-linux/include/MSSA/MemSSA.h +4 -4
- package/SVF-linux/include/MTA/FSMPTA.h +1 -1
- package/SVF-linux/include/MemoryModel/PAGBuilderFromFile.h +8 -8
- package/SVF-linux/include/MemoryModel/PTAStat.h +31 -31
- package/SVF-linux/include/MemoryModel/PointerAnalysis.h +9 -9
- package/SVF-linux/include/MemoryModel/PointerAnalysisImpl.h +3 -3
- package/SVF-linux/include/MemoryModel/SVFIR.h +526 -235
- package/SVF-linux/include/MemoryModel/SVFStatements.h +872 -0
- package/SVF-linux/include/MemoryModel/SVFVariables.h +842 -0
- package/SVF-linux/include/MemoryModel/SymbolTableInfo.h +346 -55
- package/SVF-linux/include/SABER/SaberSVFGBuilder.h +0 -2
- package/SVF-linux/include/SABER/SrcSnkDDA.h +3 -3
- package/SVF-linux/include/SVF-FE/Graph2Json.h +1 -3
- package/SVF-linux/include/SVF-FE/SVFIRBuilder.h +398 -0
- package/SVF-linux/include/SVF-FE/SymbolTableBuilder.h +0 -1
- package/SVF-linux/include/Util/CFLSolver.h +1 -1
- package/SVF-linux/include/Util/ExtAPI.h +1 -1
- package/SVF-linux/include/Util/IRAnnotator.h +6 -6
- package/SVF-linux/include/Util/Options.h +1 -1
- package/SVF-linux/include/Util/TypeBasedHeapCloning.h +11 -11
- package/SVF-linux/include/WPA/Andersen.h +11 -11
- package/SVF-linux/include/WPA/AndersenSFR.h +4 -4
- package/SVF-linux/include/WPA/FlowSensitive.h +2 -2
- package/SVF-linux/include/WPA/FlowSensitiveTBHC.h +1 -1
- package/SVF-linux/include/WPA/Steensgaard.h +2 -2
- package/SVF-linux/include/WPA/TypeAnalysis.h +1 -1
- package/SVF-linux/include/WPA/VersionedFlowSensitive.h +2 -2
- package/SVF-linux/include/WPA/WPAStat.h +1 -2
- package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
- package/SVF-osx/Release-build/lib/libSvf.a +0 -0
- package/SVF-osx/include/DDA/ContextDDA.h +1 -1
- package/SVF-osx/include/DDA/DDAClient.h +8 -8
- package/SVF-osx/include/DDA/DDAVFSolver.h +5 -5
- package/SVF-osx/include/DDA/FlowDDA.h +1 -1
- package/SVF-osx/include/Graphs/ConsG.h +6 -6
- package/SVF-osx/include/Graphs/ConsGEdge.h +2 -2
- package/SVF-osx/include/Graphs/ConsGNode.h +1 -1
- package/SVF-osx/include/Graphs/ExternalPAG.h +14 -14
- package/SVF-osx/include/Graphs/GenericGraph.h +1 -1
- package/SVF-osx/include/Graphs/ICFGNode.h +14 -14
- package/SVF-osx/include/Graphs/IRGraph.h +236 -0
- package/SVF-osx/include/Graphs/OfflineConsG.h +1 -1
- package/SVF-osx/include/Graphs/SVFG.h +1 -1
- package/SVF-osx/include/Graphs/SVFGOPT.h +3 -3
- package/SVF-osx/include/Graphs/VFG.h +37 -52
- package/SVF-osx/include/Graphs/VFGNode.h +2 -3
- package/SVF-osx/include/MSSA/MemRegion.h +11 -11
- package/SVF-osx/include/MSSA/MemSSA.h +4 -4
- package/SVF-osx/include/MTA/FSMPTA.h +1 -1
- package/SVF-osx/include/MemoryModel/PAGBuilderFromFile.h +8 -8
- package/SVF-osx/include/MemoryModel/PTAStat.h +31 -31
- package/SVF-osx/include/MemoryModel/PointerAnalysis.h +9 -9
- package/SVF-osx/include/MemoryModel/PointerAnalysisImpl.h +3 -3
- package/SVF-osx/include/MemoryModel/SVFIR.h +526 -235
- package/SVF-osx/include/MemoryModel/SVFStatements.h +872 -0
- package/SVF-osx/include/MemoryModel/SVFVariables.h +842 -0
- package/SVF-osx/include/MemoryModel/SymbolTableInfo.h +346 -55
- package/SVF-osx/include/SABER/SaberSVFGBuilder.h +0 -2
- package/SVF-osx/include/SABER/SrcSnkDDA.h +3 -3
- package/SVF-osx/include/SVF-FE/Graph2Json.h +1 -3
- package/SVF-osx/include/SVF-FE/SVFIRBuilder.h +398 -0
- package/SVF-osx/include/SVF-FE/SymbolTableBuilder.h +0 -1
- package/SVF-osx/include/Util/CFLSolver.h +1 -1
- package/SVF-osx/include/Util/ExtAPI.h +1 -1
- package/SVF-osx/include/Util/IRAnnotator.h +6 -6
- package/SVF-osx/include/Util/Options.h +1 -1
- package/SVF-osx/include/Util/TypeBasedHeapCloning.h +11 -11
- package/SVF-osx/include/WPA/Andersen.h +11 -11
- package/SVF-osx/include/WPA/AndersenSFR.h +4 -4
- package/SVF-osx/include/WPA/FlowSensitive.h +2 -2
- package/SVF-osx/include/WPA/FlowSensitiveTBHC.h +1 -1
- package/SVF-osx/include/WPA/Steensgaard.h +2 -2
- package/SVF-osx/include/WPA/TypeAnalysis.h +1 -1
- package/SVF-osx/include/WPA/VersionedFlowSensitive.h +2 -2
- package/SVF-osx/include/WPA/WPAStat.h +1 -2
- package/package.json +1 -1
|
@@ -57,49 +57,49 @@ public:
|
|
|
57
57
|
static const char* ProcessCopyGepTime; ///< time of processing copys and geps
|
|
58
58
|
static const char* UpdateCallGraphTime; ///< time of updating call graph
|
|
59
59
|
|
|
60
|
-
static const char* TotalNumOfPointers; ///< Total
|
|
61
|
-
static const char* TotalNumOfObjects; ///< Total
|
|
62
|
-
static const char* TotalNumOfFieldObjects; ///< Total
|
|
60
|
+
static const char* TotalNumOfPointers; ///< Total SVFIR value node
|
|
61
|
+
static const char* TotalNumOfObjects; ///< Total SVFIR object node
|
|
62
|
+
static const char* TotalNumOfFieldObjects; ///< Total SVFIR field object node
|
|
63
63
|
static const char* MaxStructSize; ///< Max struct size
|
|
64
|
-
static const char* TotalNumOfEdges; ///< Total
|
|
65
|
-
|
|
66
|
-
static const char* NumOfAddrs; ///<
|
|
67
|
-
static const char* NumOfLoads; ///<
|
|
68
|
-
static const char* NumOfStores; ///<
|
|
69
|
-
static const char* NumOfCopys; ///<
|
|
70
|
-
static const char* NumOfGeps; ///<
|
|
71
|
-
static const char* NumOfCalls; ///<
|
|
72
|
-
static const char* NumOfReturns; ///<
|
|
73
|
-
|
|
74
|
-
static const char* NumOfProcessedAddrs; ///<
|
|
75
|
-
static const char* NumOfProcessedLoads; ///<
|
|
76
|
-
static const char* NumOfProcessedStores; ///<
|
|
77
|
-
static const char* NumOfProcessedCopys; ///<
|
|
78
|
-
static const char* NumOfProcessedGeps; ///<
|
|
64
|
+
static const char* TotalNumOfEdges; ///< Total SVFIR edge number
|
|
65
|
+
|
|
66
|
+
static const char* NumOfAddrs; ///< SVFIR addr edge
|
|
67
|
+
static const char* NumOfLoads; ///< SVFIR load edge
|
|
68
|
+
static const char* NumOfStores; ///< SVFIR store edge
|
|
69
|
+
static const char* NumOfCopys; ///< SVFIR copy edge
|
|
70
|
+
static const char* NumOfGeps; ///< SVFIR gep edge
|
|
71
|
+
static const char* NumOfCalls; ///< SVFIR call edge
|
|
72
|
+
static const char* NumOfReturns; ///< SVFIR return edge
|
|
73
|
+
|
|
74
|
+
static const char* NumOfProcessedAddrs; ///< SVFIR processed addr edge
|
|
75
|
+
static const char* NumOfProcessedLoads; ///< SVFIR processed load edge
|
|
76
|
+
static const char* NumOfProcessedStores; ///< SVFIR processed store edge
|
|
77
|
+
static const char* NumOfProcessedCopys; ///< SVFIR processed copy edge
|
|
78
|
+
static const char* NumOfProcessedGeps; ///< SVFIR processed gep edge
|
|
79
79
|
|
|
80
80
|
static const char* NumOfSfr; ///< num of field representatives
|
|
81
81
|
static const char* NumOfFieldExpand;
|
|
82
82
|
|
|
83
83
|
static const char* NumOfFunctionObjs; ///< Function numbers
|
|
84
|
-
static const char* NumOfGlobalObjs; ///<
|
|
85
|
-
static const char* NumOfHeapObjs; ///<
|
|
86
|
-
static const char* NumOfStackObjs; ///<
|
|
84
|
+
static const char* NumOfGlobalObjs; ///< SVFIR global object node
|
|
85
|
+
static const char* NumOfHeapObjs; ///< SVFIR heap object node
|
|
86
|
+
static const char* NumOfStackObjs; ///< SVFIR stack object node
|
|
87
87
|
|
|
88
|
-
static const char* NumOfObjsHasVarStruct; ///<
|
|
89
|
-
static const char* NumOfObjsHasVarArray; ///<
|
|
90
|
-
static const char* NumOfObjsHasConstStruct; ///<
|
|
91
|
-
static const char* NumOfObjsHasConstArray; ///<
|
|
92
|
-
static const char* NumOfNonPtrObjs; ///<
|
|
93
|
-
static const char* NumOfConstantObjs; ///<
|
|
88
|
+
static const char* NumOfObjsHasVarStruct; ///< SVFIR object node has var struct (maybe nested with array)
|
|
89
|
+
static const char* NumOfObjsHasVarArray; ///< SVFIR object node has var array (maybe nested with struct)
|
|
90
|
+
static const char* NumOfObjsHasConstStruct; ///< SVFIR object node has const struct (maybe nested with array)
|
|
91
|
+
static const char* NumOfObjsHasConstArray; ///< SVFIR object node has const array (maybe nested with struct)
|
|
92
|
+
static const char* NumOfNonPtrObjs; ///< SVFIR object node which is non pointer type object (do not have pts)
|
|
93
|
+
static const char* NumOfConstantObjs; ///< SVFIR object node which is purely constant
|
|
94
94
|
|
|
95
95
|
static const char* NumberOfFieldInsensitiveObj;
|
|
96
96
|
static const char* NumberOfFieldSensitiveObj;
|
|
97
97
|
|
|
98
|
-
static const char* NumOfPointers; ///<
|
|
99
|
-
static const char* NumOfGepFieldPointers; ///<
|
|
98
|
+
static const char* NumOfPointers; ///< SVFIR value node, each of them maps to a llvm value
|
|
99
|
+
static const char* NumOfGepFieldPointers; ///< SVFIR gep value node (field value, dynamically created dummy node)
|
|
100
100
|
|
|
101
|
-
static const char* NumOfMemObjects; ///<
|
|
102
|
-
static const char* NumOfGepFieldObjects; ///<
|
|
101
|
+
static const char* NumOfMemObjects; ///< SVFIR object node, each of them maps to a llvm value
|
|
102
|
+
static const char* NumOfGepFieldObjects; ///< SVFIR gep object node (field obj, dynamically created dummy node)
|
|
103
103
|
|
|
104
104
|
static const char* AveragePointsToSetSize; ///< Average points-to size of all variables
|
|
105
105
|
static const char* AverageTopLevPointsToSetSize; ///< Average points-to size of top-level variables
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
#include <unistd.h>
|
|
34
34
|
#include <signal.h>
|
|
35
35
|
|
|
36
|
-
#include "
|
|
36
|
+
#include "MemoryModel/SVFIR.h"
|
|
37
37
|
#include "MemoryModel/ConditionalPT.h"
|
|
38
38
|
#include "MemoryModel/AbstractPointsToDS.h"
|
|
39
39
|
#include "MemoryModel/MutablePointsToDS.h"
|
|
@@ -106,7 +106,7 @@ public:
|
|
|
106
106
|
//@{
|
|
107
107
|
typedef llvm::AliasAnalysis AliasAnalysis;
|
|
108
108
|
typedef Set<const CallBlockNode*> CallSiteSet;
|
|
109
|
-
typedef
|
|
109
|
+
typedef SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap;
|
|
110
110
|
typedef Set<const SVFFunction*> FunctionSet;
|
|
111
111
|
typedef OrderedMap<const CallBlockNode*, FunctionSet> CallEdgeMap;
|
|
112
112
|
typedef SCCDetection<PTACallGraph*> CallGraphSCC;
|
|
@@ -143,8 +143,8 @@ protected:
|
|
|
143
143
|
u32_t OnTheFlyIterBudgetForStat;
|
|
144
144
|
//@}
|
|
145
145
|
|
|
146
|
-
///
|
|
147
|
-
static
|
|
146
|
+
/// SVFIR
|
|
147
|
+
static SVFIR* pag;
|
|
148
148
|
/// Module
|
|
149
149
|
SVFModule* svfMod;
|
|
150
150
|
/// Pointer analysis Type
|
|
@@ -186,7 +186,7 @@ public:
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
/// Constructor
|
|
189
|
-
PointerAnalysis(
|
|
189
|
+
PointerAnalysis(SVFIR* pag, PTATY ty = Default_PTA, bool alias_check = true);
|
|
190
190
|
|
|
191
191
|
/// Type of pointer analysis
|
|
192
192
|
inline PTATY getAnalysisTy() const
|
|
@@ -200,9 +200,9 @@ public:
|
|
|
200
200
|
return ptaImplTy;
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
/// Get/set
|
|
203
|
+
/// Get/set SVFIR
|
|
204
204
|
///@{
|
|
205
|
-
inline
|
|
205
|
+
inline SVFIR* getPAG() const
|
|
206
206
|
{
|
|
207
207
|
return pag;
|
|
208
208
|
}
|
|
@@ -227,7 +227,7 @@ public:
|
|
|
227
227
|
/// Destructor
|
|
228
228
|
virtual ~PointerAnalysis();
|
|
229
229
|
|
|
230
|
-
/// Initialization of a pointer analysis, including building symbol table and
|
|
230
|
+
/// Initialization of a pointer analysis, including building symbol table and SVFIR etc.
|
|
231
231
|
virtual void initialize();
|
|
232
232
|
|
|
233
233
|
/// Finalization of a pointer analysis, including checking alias correctness
|
|
@@ -344,7 +344,7 @@ public:
|
|
|
344
344
|
///@{
|
|
345
345
|
inline bool isFIObjNode(NodeID id) const
|
|
346
346
|
{
|
|
347
|
-
return (SVFUtil::isa<FIObjPN>(pag->
|
|
347
|
+
return (SVFUtil::isa<FIObjPN>(pag->getGNode(id)));
|
|
348
348
|
}
|
|
349
349
|
inline NodeID getBaseObjNode(NodeID id)
|
|
350
350
|
{
|
|
@@ -68,7 +68,7 @@ public:
|
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
/// Constructor
|
|
71
|
-
BVDataPTAImpl(
|
|
71
|
+
BVDataPTAImpl(SVFIR* pag, PointerAnalysis::PTATY type, bool alias_check = true);
|
|
72
72
|
|
|
73
73
|
/// Destructor
|
|
74
74
|
virtual ~BVDataPTAImpl()
|
|
@@ -261,7 +261,7 @@ public:
|
|
|
261
261
|
typedef Map<NodeID,CPtSet> PtrToCPtsMap; /// map a pointer to its conditional points-to set
|
|
262
262
|
|
|
263
263
|
/// Constructor
|
|
264
|
-
CondPTAImpl(
|
|
264
|
+
CondPTAImpl(SVFIR* pag, PointerAnalysis::PTATY type) : PointerAnalysis(pag, type), normalized(false)
|
|
265
265
|
{
|
|
266
266
|
if (type == PathS_DDA || type == Cxt_DDA)
|
|
267
267
|
ptD = new MutPTDataTy();
|
|
@@ -574,7 +574,7 @@ public:
|
|
|
574
574
|
{
|
|
575
575
|
for (OrderedNodeSet::iterator nIter = this->getAllValidPtrs().begin(); nIter != this->getAllValidPtrs().end(); ++nIter)
|
|
576
576
|
{
|
|
577
|
-
const PAGNode* node = this->getPAG()->
|
|
577
|
+
const PAGNode* node = this->getPAG()->getGNode(*nIter);
|
|
578
578
|
if (this->getPAG()->isValidTopLevelPtr(node))
|
|
579
579
|
{
|
|
580
580
|
if (SVFUtil::isa<DummyObjPN>(node))
|