svf-lib 1.0.2576 → 1.0.2578

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.
@@ -37,9 +37,9 @@
37
37
  #include "AE/Svfexe/AEStat.h"
38
38
  #include "SVFIR/SVFIR.h"
39
39
  #include "Util/SVFBugReport.h"
40
+ #include "Util/WorkList.h"
40
41
  #include "Graphs/SCC.h"
41
42
  #include "Graphs/CallGraph.h"
42
- #include <deque>
43
43
 
44
44
  namespace SVF
45
45
  {
@@ -94,6 +94,12 @@ public:
94
94
  WIDEN_NARROW
95
95
  };
96
96
 
97
+ enum AEFunEntryMode
98
+ {
99
+ MAIN,
100
+ NO_MAIN
101
+ };
102
+
97
103
  virtual void runOnModule();
98
104
 
99
105
  /// Destructor
@@ -106,7 +112,7 @@ public:
106
112
  void analyzeFromAllProgEntries();
107
113
 
108
114
  /// Get all entry point functions (functions without callers)
109
- std::deque<const FunObjVar*> collectProgEntryFuns();
115
+ FIFOWorkList<const FunObjVar*> collectProgEntryFuns();
110
116
 
111
117
  /// Factory: returns the singleton instance. The concrete class is
112
118
  /// chosen once, on first call, from `Options::AESparsity()`:
@@ -254,10 +260,10 @@ private:
254
260
  virtual void handleCallSite(const ICFGNode* node);
255
261
 
256
262
  /// Handle a WTO cycle (loop or recursive function) using widening/narrowing iteration
257
- virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller = nullptr);
263
+ virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller);
258
264
 
259
265
  /// Handle a function body via worklist-driven WTO traversal starting from funEntry
260
- void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller = nullptr);
266
+ void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller);
261
267
 
262
268
  /// Handle an ICFG node: execute statements; return true if state changed
263
269
  bool handleICFGNode(const ICFGNode* node);
@@ -241,6 +241,7 @@ public:
241
241
 
242
242
  // Abstract Execution
243
243
  static const OptionMap<u32_t> AESparsity;
244
+ static const OptionMap<u32_t> AEFunEntry;
244
245
  static const Option<u32_t> WidenDelay;
245
246
  /// recursion handling mode, Default: TOP
246
247
  static const OptionMap<u32_t> HandleRecur;
@@ -37,9 +37,9 @@
37
37
  #include "AE/Svfexe/AEStat.h"
38
38
  #include "SVFIR/SVFIR.h"
39
39
  #include "Util/SVFBugReport.h"
40
+ #include "Util/WorkList.h"
40
41
  #include "Graphs/SCC.h"
41
42
  #include "Graphs/CallGraph.h"
42
- #include <deque>
43
43
 
44
44
  namespace SVF
45
45
  {
@@ -94,6 +94,12 @@ public:
94
94
  WIDEN_NARROW
95
95
  };
96
96
 
97
+ enum AEFunEntryMode
98
+ {
99
+ MAIN,
100
+ NO_MAIN
101
+ };
102
+
97
103
  virtual void runOnModule();
98
104
 
99
105
  /// Destructor
@@ -106,7 +112,7 @@ public:
106
112
  void analyzeFromAllProgEntries();
107
113
 
108
114
  /// Get all entry point functions (functions without callers)
109
- std::deque<const FunObjVar*> collectProgEntryFuns();
115
+ FIFOWorkList<const FunObjVar*> collectProgEntryFuns();
110
116
 
111
117
  /// Factory: returns the singleton instance. The concrete class is
112
118
  /// chosen once, on first call, from `Options::AESparsity()`:
@@ -254,10 +260,10 @@ private:
254
260
  virtual void handleCallSite(const ICFGNode* node);
255
261
 
256
262
  /// Handle a WTO cycle (loop or recursive function) using widening/narrowing iteration
257
- virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller = nullptr);
263
+ virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller);
258
264
 
259
265
  /// Handle a function body via worklist-driven WTO traversal starting from funEntry
260
- void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller = nullptr);
266
+ void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller);
261
267
 
262
268
  /// Handle an ICFG node: execute statements; return true if state changed
263
269
  bool handleICFGNode(const ICFGNode* node);
@@ -241,6 +241,7 @@ public:
241
241
 
242
242
  // Abstract Execution
243
243
  static const OptionMap<u32_t> AESparsity;
244
+ static const OptionMap<u32_t> AEFunEntry;
244
245
  static const Option<u32_t> WidenDelay;
245
246
  /// recursion handling mode, Default: TOP
246
247
  static const OptionMap<u32_t> HandleRecur;
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.2576",
3
+ "version": "1.0.2578",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {