svf-lib 1.0.1107 → 1.0.1110
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/MemoryModel/PointsTo.h +3 -2
- package/SVF-linux/include/SVF-FE/LLVMModule.h +3 -0
- package/SVF-linux/include/Util/SVFBasicTypes.h +6 -5
- package/SVF-linux/include/Util/SparseBitVector.h +1208 -0
- 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/MemoryModel/PointsTo.h +3 -2
- package/SVF-osx/include/Util/SVFBasicTypes.h +6 -5
- package/SVF-osx/include/Util/SparseBitVector.h +1208 -0
- package/package.json +1 -1
|
Binary file
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#include "Util/SVFBasicTypes.h"
|
|
18
18
|
#include "Util/BitVector.h"
|
|
19
19
|
#include "Util/CoreBitVector.h"
|
|
20
|
+
#include "Util/SparseBitVector.h"
|
|
20
21
|
|
|
21
22
|
namespace SVF
|
|
22
23
|
{
|
|
@@ -162,7 +163,7 @@ private:
|
|
|
162
163
|
union
|
|
163
164
|
{
|
|
164
165
|
/// Sparse bit vector backing.
|
|
165
|
-
SparseBitVector sbv;
|
|
166
|
+
SparseBitVector<> sbv;
|
|
166
167
|
/// Core bit vector backing.
|
|
167
168
|
CoreBitVector cbv;
|
|
168
169
|
/// Bit vector backing.
|
|
@@ -223,7 +224,7 @@ public:
|
|
|
223
224
|
/// TODO: std::variant when we move to C++17.
|
|
224
225
|
union
|
|
225
226
|
{
|
|
226
|
-
SparseBitVector
|
|
227
|
+
SparseBitVector<>::iterator sbvIt;
|
|
227
228
|
CoreBitVector::iterator cbvIt;
|
|
228
229
|
BitVector::iterator bvIt;
|
|
229
230
|
};
|
|
@@ -35,9 +35,10 @@
|
|
|
35
35
|
#include <llvm/IR/BasicBlock.h>
|
|
36
36
|
#include <llvm/ADT/SmallVector.h>
|
|
37
37
|
|
|
38
|
-
#include <llvm/ADT/SparseBitVector.h> // for points-to
|
|
39
38
|
#include <llvm/Support/CommandLine.h> // for command line options
|
|
40
39
|
|
|
40
|
+
#include <Util/SparseBitVector.h>
|
|
41
|
+
|
|
41
42
|
#include <iostream>
|
|
42
43
|
#include <vector>
|
|
43
44
|
#include <list>
|
|
@@ -92,8 +93,8 @@ typedef unsigned SymID;
|
|
|
92
93
|
typedef unsigned CallSiteID;
|
|
93
94
|
typedef unsigned ThreadID;
|
|
94
95
|
|
|
95
|
-
typedef
|
|
96
|
-
typedef
|
|
96
|
+
typedef SparseBitVector<> NodeBS;
|
|
97
|
+
//typedef SparseBitVector<> SparseBitVector;
|
|
97
98
|
//typedef NodeBS PointsTo;
|
|
98
99
|
class PointsTo;
|
|
99
100
|
typedef PointsTo AliasSet;
|
|
@@ -297,9 +298,9 @@ template <> struct std::hash<SVF::NodePair>
|
|
|
297
298
|
|
|
298
299
|
/// Specialise hash for SparseBitVectors.
|
|
299
300
|
template <unsigned N>
|
|
300
|
-
struct std::hash<
|
|
301
|
+
struct std::hash<SVF::SparseBitVector<N>>
|
|
301
302
|
{
|
|
302
|
-
size_t operator()(const
|
|
303
|
+
size_t operator()(const SVF::SparseBitVector<N> &sbv) const
|
|
303
304
|
{
|
|
304
305
|
SVF::Hash<std::pair<std::pair<size_t, size_t>, size_t>> h;
|
|
305
306
|
return h(std::make_pair(std::make_pair(sbv.count(), sbv.find_first()), sbv.find_last()));
|