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.
Files changed (94) hide show
  1. package/SVF-linux/Release-build/lib/libSvf.a +0 -0
  2. package/SVF-linux/include/DDA/ContextDDA.h +1 -1
  3. package/SVF-linux/include/DDA/DDAClient.h +8 -8
  4. package/SVF-linux/include/DDA/DDAVFSolver.h +5 -5
  5. package/SVF-linux/include/DDA/FlowDDA.h +1 -1
  6. package/SVF-linux/include/Graphs/ConsG.h +6 -6
  7. package/SVF-linux/include/Graphs/ConsGEdge.h +2 -2
  8. package/SVF-linux/include/Graphs/ConsGNode.h +1 -1
  9. package/SVF-linux/include/Graphs/ExternalPAG.h +14 -14
  10. package/SVF-linux/include/Graphs/GenericGraph.h +1 -1
  11. package/SVF-linux/include/Graphs/ICFGNode.h +14 -14
  12. package/SVF-linux/include/Graphs/IRGraph.h +236 -0
  13. package/SVF-linux/include/Graphs/OfflineConsG.h +1 -1
  14. package/SVF-linux/include/Graphs/SVFG.h +1 -1
  15. package/SVF-linux/include/Graphs/SVFGOPT.h +3 -3
  16. package/SVF-linux/include/Graphs/VFG.h +37 -52
  17. package/SVF-linux/include/Graphs/VFGNode.h +2 -3
  18. package/SVF-linux/include/MSSA/MemRegion.h +11 -11
  19. package/SVF-linux/include/MSSA/MemSSA.h +4 -4
  20. package/SVF-linux/include/MTA/FSMPTA.h +1 -1
  21. package/SVF-linux/include/MemoryModel/PAGBuilderFromFile.h +8 -8
  22. package/SVF-linux/include/MemoryModel/PTAStat.h +31 -31
  23. package/SVF-linux/include/MemoryModel/PointerAnalysis.h +9 -9
  24. package/SVF-linux/include/MemoryModel/PointerAnalysisImpl.h +3 -3
  25. package/SVF-linux/include/MemoryModel/SVFIR.h +526 -235
  26. package/SVF-linux/include/MemoryModel/SVFStatements.h +872 -0
  27. package/SVF-linux/include/MemoryModel/SVFVariables.h +842 -0
  28. package/SVF-linux/include/MemoryModel/SymbolTableInfo.h +346 -55
  29. package/SVF-linux/include/SABER/SaberSVFGBuilder.h +0 -2
  30. package/SVF-linux/include/SABER/SrcSnkDDA.h +3 -3
  31. package/SVF-linux/include/SVF-FE/Graph2Json.h +1 -3
  32. package/SVF-linux/include/SVF-FE/SVFIRBuilder.h +398 -0
  33. package/SVF-linux/include/SVF-FE/SymbolTableBuilder.h +0 -1
  34. package/SVF-linux/include/Util/CFLSolver.h +1 -1
  35. package/SVF-linux/include/Util/ExtAPI.h +1 -1
  36. package/SVF-linux/include/Util/IRAnnotator.h +6 -6
  37. package/SVF-linux/include/Util/Options.h +1 -1
  38. package/SVF-linux/include/Util/TypeBasedHeapCloning.h +11 -11
  39. package/SVF-linux/include/WPA/Andersen.h +11 -11
  40. package/SVF-linux/include/WPA/AndersenSFR.h +4 -4
  41. package/SVF-linux/include/WPA/FlowSensitive.h +2 -2
  42. package/SVF-linux/include/WPA/FlowSensitiveTBHC.h +1 -1
  43. package/SVF-linux/include/WPA/Steensgaard.h +2 -2
  44. package/SVF-linux/include/WPA/TypeAnalysis.h +1 -1
  45. package/SVF-linux/include/WPA/VersionedFlowSensitive.h +2 -2
  46. package/SVF-linux/include/WPA/WPAStat.h +1 -2
  47. package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
  48. package/SVF-osx/Release-build/lib/libSvf.a +0 -0
  49. package/SVF-osx/include/DDA/ContextDDA.h +1 -1
  50. package/SVF-osx/include/DDA/DDAClient.h +8 -8
  51. package/SVF-osx/include/DDA/DDAVFSolver.h +5 -5
  52. package/SVF-osx/include/DDA/FlowDDA.h +1 -1
  53. package/SVF-osx/include/Graphs/ConsG.h +6 -6
  54. package/SVF-osx/include/Graphs/ConsGEdge.h +2 -2
  55. package/SVF-osx/include/Graphs/ConsGNode.h +1 -1
  56. package/SVF-osx/include/Graphs/ExternalPAG.h +14 -14
  57. package/SVF-osx/include/Graphs/GenericGraph.h +1 -1
  58. package/SVF-osx/include/Graphs/ICFGNode.h +14 -14
  59. package/SVF-osx/include/Graphs/IRGraph.h +236 -0
  60. package/SVF-osx/include/Graphs/OfflineConsG.h +1 -1
  61. package/SVF-osx/include/Graphs/SVFG.h +1 -1
  62. package/SVF-osx/include/Graphs/SVFGOPT.h +3 -3
  63. package/SVF-osx/include/Graphs/VFG.h +37 -52
  64. package/SVF-osx/include/Graphs/VFGNode.h +2 -3
  65. package/SVF-osx/include/MSSA/MemRegion.h +11 -11
  66. package/SVF-osx/include/MSSA/MemSSA.h +4 -4
  67. package/SVF-osx/include/MTA/FSMPTA.h +1 -1
  68. package/SVF-osx/include/MemoryModel/PAGBuilderFromFile.h +8 -8
  69. package/SVF-osx/include/MemoryModel/PTAStat.h +31 -31
  70. package/SVF-osx/include/MemoryModel/PointerAnalysis.h +9 -9
  71. package/SVF-osx/include/MemoryModel/PointerAnalysisImpl.h +3 -3
  72. package/SVF-osx/include/MemoryModel/SVFIR.h +526 -235
  73. package/SVF-osx/include/MemoryModel/SVFStatements.h +872 -0
  74. package/SVF-osx/include/MemoryModel/SVFVariables.h +842 -0
  75. package/SVF-osx/include/MemoryModel/SymbolTableInfo.h +346 -55
  76. package/SVF-osx/include/SABER/SaberSVFGBuilder.h +0 -2
  77. package/SVF-osx/include/SABER/SrcSnkDDA.h +3 -3
  78. package/SVF-osx/include/SVF-FE/Graph2Json.h +1 -3
  79. package/SVF-osx/include/SVF-FE/SVFIRBuilder.h +398 -0
  80. package/SVF-osx/include/SVF-FE/SymbolTableBuilder.h +0 -1
  81. package/SVF-osx/include/Util/CFLSolver.h +1 -1
  82. package/SVF-osx/include/Util/ExtAPI.h +1 -1
  83. package/SVF-osx/include/Util/IRAnnotator.h +6 -6
  84. package/SVF-osx/include/Util/Options.h +1 -1
  85. package/SVF-osx/include/Util/TypeBasedHeapCloning.h +11 -11
  86. package/SVF-osx/include/WPA/Andersen.h +11 -11
  87. package/SVF-osx/include/WPA/AndersenSFR.h +4 -4
  88. package/SVF-osx/include/WPA/FlowSensitive.h +2 -2
  89. package/SVF-osx/include/WPA/FlowSensitiveTBHC.h +1 -1
  90. package/SVF-osx/include/WPA/Steensgaard.h +2 -2
  91. package/SVF-osx/include/WPA/TypeAnalysis.h +1 -1
  92. package/SVF-osx/include/WPA/VersionedFlowSensitive.h +2 -2
  93. package/SVF-osx/include/WPA/WPAStat.h +1 -2
  94. 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 PAG value node
61
- static const char* TotalNumOfObjects; ///< Total PAG object node
62
- static const char* TotalNumOfFieldObjects; ///< Total PAG field object node
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 PAG edge number
65
-
66
- static const char* NumOfAddrs; ///< PAG addr edge
67
- static const char* NumOfLoads; ///< PAG load edge
68
- static const char* NumOfStores; ///< PAG store edge
69
- static const char* NumOfCopys; ///< PAG copy edge
70
- static const char* NumOfGeps; ///< PAG gep edge
71
- static const char* NumOfCalls; ///< PAG call edge
72
- static const char* NumOfReturns; ///< PAG return edge
73
-
74
- static const char* NumOfProcessedAddrs; ///< PAG processed addr edge
75
- static const char* NumOfProcessedLoads; ///< PAG processed load edge
76
- static const char* NumOfProcessedStores; ///< PAG processed store edge
77
- static const char* NumOfProcessedCopys; ///< PAG processed copy edge
78
- static const char* NumOfProcessedGeps; ///< PAG processed gep edge
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; ///< PAG global object node
85
- static const char* NumOfHeapObjs; ///< PAG heap object node
86
- static const char* NumOfStackObjs; ///< PAG stack object node
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; ///< PAG object node has var struct (maybe nested with array)
89
- static const char* NumOfObjsHasVarArray; ///< PAG object node has var array (maybe nested with struct)
90
- static const char* NumOfObjsHasConstStruct; ///< PAG object node has const struct (maybe nested with array)
91
- static const char* NumOfObjsHasConstArray; ///< PAG object node has const array (maybe nested with struct)
92
- static const char* NumOfNonPtrObjs; ///< PAG object node which is non pointer type object (do not have pts)
93
- static const char* NumOfConstantObjs; ///< PAG object node which is purely constant
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; ///< PAG value node, each of them maps to a llvm value
99
- static const char* NumOfGepFieldPointers; ///< PAG gep value node (field value, dynamically created dummy node)
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; ///< PAG object node, each of them maps to a llvm value
102
- static const char* NumOfGepFieldObjects; ///< PAG gep object node (field obj, dynamically created dummy node)
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 "Graphs/PAG.h"
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 PAG::CallSiteToFunPtrMap CallSiteToFunPtrMap;
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
- /// PAG
147
- static PAG* pag;
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(PAG* pag, PTATY ty = Default_PTA, bool alias_check = true);
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 PAG
203
+ /// Get/set SVFIR
204
204
  ///@{
205
- inline PAG* getPAG() const
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 PAG etc.
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->getPAGNode(id)));
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(PAG* pag, PointerAnalysis::PTATY type, bool alias_check = true);
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(PAG* pag, PointerAnalysis::PTATY type) : PointerAnalysis(pag, type), normalized(false)
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()->getPAGNode(*nIter);
577
+ const PAGNode* node = this->getPAG()->getGNode(*nIter);
578
578
  if (this->getPAG()->isValidTopLevelPtr(node))
579
579
  {
580
580
  if (SVFUtil::isa<DummyObjPN>(node))