svf-lib 1.0.704 → 1.0.708
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/Graphs/SVFGStat.h +10 -10
- package/SVF-linux/include/MemoryModel/PTAStat.h +8 -2
- package/SVF-linux/include/Util/Options.h +3 -0
- package/SVF-linux/include/WPA/WPASolver.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/Graphs/SVFGStat.h +10 -10
- package/SVF-osx/include/MemoryModel/PTAStat.h +8 -2
- package/SVF-osx/include/Util/Options.h +3 -0
- package/SVF-osx/include/WPA/WPASolver.h +1 -2
- package/package.json +1 -1
|
Binary file
|
|
@@ -108,52 +108,52 @@ public:
|
|
|
108
108
|
|
|
109
109
|
void dirVFEdgeStart()
|
|
110
110
|
{
|
|
111
|
-
connectDirSVFGEdgeTimeStart =
|
|
111
|
+
connectDirSVFGEdgeTimeStart = PTAStat::getClk(true);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
void dirVFEdgeEnd()
|
|
115
115
|
{
|
|
116
|
-
connectDirSVFGEdgeTimeEnd =
|
|
116
|
+
connectDirSVFGEdgeTimeEnd = PTAStat::getClk(true);
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
void indVFEdgeStart()
|
|
120
120
|
{
|
|
121
|
-
connectIndSVFGEdgeTimeStart =
|
|
121
|
+
connectIndSVFGEdgeTimeStart = PTAStat::getClk(true);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
void indVFEdgeEnd()
|
|
125
125
|
{
|
|
126
|
-
connectIndSVFGEdgeTimeEnd =
|
|
126
|
+
connectIndSVFGEdgeTimeEnd = PTAStat::getClk(true);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
void TLVFNodeStart()
|
|
130
130
|
{
|
|
131
|
-
addTopLevelNodeTimeStart =
|
|
131
|
+
addTopLevelNodeTimeStart = PTAStat::getClk(true);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
void TLVFNodeEnd()
|
|
135
135
|
{
|
|
136
|
-
addTopLevelNodeTimeEnd =
|
|
136
|
+
addTopLevelNodeTimeEnd = PTAStat::getClk(true);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
void ATVFNodeStart()
|
|
140
140
|
{
|
|
141
|
-
addAddrTakenNodeTimeStart =
|
|
141
|
+
addAddrTakenNodeTimeStart = PTAStat::getClk(true);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
void ATVFNodeEnd()
|
|
145
145
|
{
|
|
146
|
-
addAddrTakenNodeTimeEnd =
|
|
146
|
+
addAddrTakenNodeTimeEnd = PTAStat::getClk(true);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
void sfvgOptStart()
|
|
150
150
|
{
|
|
151
|
-
svfgOptTimeStart =
|
|
151
|
+
svfgOptTimeStart = PTAStat::getClk(true);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
void sfvgOptEnd()
|
|
155
155
|
{
|
|
156
|
-
svfgOptTimeEnd =
|
|
156
|
+
svfgOptTimeEnd = PTAStat::getClk(true);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
private:
|
|
@@ -122,16 +122,22 @@ public:
|
|
|
122
122
|
|
|
123
123
|
typedef Map<const char*,double> TIMEStatMap;
|
|
124
124
|
|
|
125
|
+
enum ClockType
|
|
126
|
+
{
|
|
127
|
+
Wall,
|
|
128
|
+
CPU,
|
|
129
|
+
};
|
|
130
|
+
|
|
125
131
|
PTAStat(PointerAnalysis* p);
|
|
126
132
|
virtual ~PTAStat() {}
|
|
127
133
|
|
|
128
134
|
virtual inline void startClk()
|
|
129
135
|
{
|
|
130
|
-
startTime =
|
|
136
|
+
startTime = getClk(true);
|
|
131
137
|
}
|
|
132
138
|
virtual inline void endClk()
|
|
133
139
|
{
|
|
134
|
-
endTime =
|
|
140
|
+
endTime = getClk(true);
|
|
135
141
|
}
|
|
136
142
|
/// When mark is true, real clock is always returned. When mark is false, it is
|
|
137
143
|
/// only returned when Options::MarkedClocksOnly is not set.
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <sstream>
|
|
7
7
|
#include "FastCluster/fastcluster.h"
|
|
8
|
+
#include "MemoryModel/PTAStat.h"
|
|
8
9
|
#include "MemoryModel/PointerAnalysisImpl.h"
|
|
9
10
|
#include "Util/NodeIDAllocator.h"
|
|
10
11
|
#include "MSSA/MemSSA.h"
|
|
@@ -19,6 +20,8 @@ class Options
|
|
|
19
20
|
public:
|
|
20
21
|
Options(void) = delete;
|
|
21
22
|
|
|
23
|
+
static const llvm::cl::opt<enum PTAStat::ClockType> ClockType;
|
|
24
|
+
|
|
22
25
|
/// If set, only return the clock when getClk is called as getClk(true).
|
|
23
26
|
/// Retrieving the clock is slow but it should be fine for a few calls.
|
|
24
27
|
/// This is good for benchmarking when we don't need to know how long processLoad
|
|
Binary file
|
|
Binary file
|
|
@@ -108,52 +108,52 @@ public:
|
|
|
108
108
|
|
|
109
109
|
void dirVFEdgeStart()
|
|
110
110
|
{
|
|
111
|
-
connectDirSVFGEdgeTimeStart =
|
|
111
|
+
connectDirSVFGEdgeTimeStart = PTAStat::getClk(true);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
void dirVFEdgeEnd()
|
|
115
115
|
{
|
|
116
|
-
connectDirSVFGEdgeTimeEnd =
|
|
116
|
+
connectDirSVFGEdgeTimeEnd = PTAStat::getClk(true);
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
void indVFEdgeStart()
|
|
120
120
|
{
|
|
121
|
-
connectIndSVFGEdgeTimeStart =
|
|
121
|
+
connectIndSVFGEdgeTimeStart = PTAStat::getClk(true);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
void indVFEdgeEnd()
|
|
125
125
|
{
|
|
126
|
-
connectIndSVFGEdgeTimeEnd =
|
|
126
|
+
connectIndSVFGEdgeTimeEnd = PTAStat::getClk(true);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
void TLVFNodeStart()
|
|
130
130
|
{
|
|
131
|
-
addTopLevelNodeTimeStart =
|
|
131
|
+
addTopLevelNodeTimeStart = PTAStat::getClk(true);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
void TLVFNodeEnd()
|
|
135
135
|
{
|
|
136
|
-
addTopLevelNodeTimeEnd =
|
|
136
|
+
addTopLevelNodeTimeEnd = PTAStat::getClk(true);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
void ATVFNodeStart()
|
|
140
140
|
{
|
|
141
|
-
addAddrTakenNodeTimeStart =
|
|
141
|
+
addAddrTakenNodeTimeStart = PTAStat::getClk(true);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
void ATVFNodeEnd()
|
|
145
145
|
{
|
|
146
|
-
addAddrTakenNodeTimeEnd =
|
|
146
|
+
addAddrTakenNodeTimeEnd = PTAStat::getClk(true);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
void sfvgOptStart()
|
|
150
150
|
{
|
|
151
|
-
svfgOptTimeStart =
|
|
151
|
+
svfgOptTimeStart = PTAStat::getClk(true);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
void sfvgOptEnd()
|
|
155
155
|
{
|
|
156
|
-
svfgOptTimeEnd =
|
|
156
|
+
svfgOptTimeEnd = PTAStat::getClk(true);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
private:
|
|
@@ -122,16 +122,22 @@ public:
|
|
|
122
122
|
|
|
123
123
|
typedef Map<const char*,double> TIMEStatMap;
|
|
124
124
|
|
|
125
|
+
enum ClockType
|
|
126
|
+
{
|
|
127
|
+
Wall,
|
|
128
|
+
CPU,
|
|
129
|
+
};
|
|
130
|
+
|
|
125
131
|
PTAStat(PointerAnalysis* p);
|
|
126
132
|
virtual ~PTAStat() {}
|
|
127
133
|
|
|
128
134
|
virtual inline void startClk()
|
|
129
135
|
{
|
|
130
|
-
startTime =
|
|
136
|
+
startTime = getClk(true);
|
|
131
137
|
}
|
|
132
138
|
virtual inline void endClk()
|
|
133
139
|
{
|
|
134
|
-
endTime =
|
|
140
|
+
endTime = getClk(true);
|
|
135
141
|
}
|
|
136
142
|
/// When mark is true, real clock is always returned. When mark is false, it is
|
|
137
143
|
/// only returned when Options::MarkedClocksOnly is not set.
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <sstream>
|
|
7
7
|
#include "FastCluster/fastcluster.h"
|
|
8
|
+
#include "MemoryModel/PTAStat.h"
|
|
8
9
|
#include "MemoryModel/PointerAnalysisImpl.h"
|
|
9
10
|
#include "Util/NodeIDAllocator.h"
|
|
10
11
|
#include "MSSA/MemSSA.h"
|
|
@@ -19,6 +20,8 @@ class Options
|
|
|
19
20
|
public:
|
|
20
21
|
Options(void) = delete;
|
|
21
22
|
|
|
23
|
+
static const llvm::cl::opt<enum PTAStat::ClockType> ClockType;
|
|
24
|
+
|
|
22
25
|
/// If set, only return the clock when getClk is called as getClk(true).
|
|
23
26
|
/// Retrieving the clock is slow but it should be fine for a few calls.
|
|
24
27
|
/// This is good for benchmarking when we don't need to know how long processLoad
|