svf-lib 1.0.714 → 1.0.718

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.
@@ -138,7 +138,7 @@ public:
138
138
  if (lhs != result)
139
139
  {
140
140
  unionCache[std::minmax(lhs, result)] = result;
141
- ++propertyUnions;
141
+ ++preemptiveUnions;
142
142
  ++totalUnions;
143
143
  }
144
144
 
@@ -146,7 +146,7 @@ public:
146
146
  if (rhs != result)
147
147
  {
148
148
  unionCache[std::minmax(rhs, result)] = result;
149
- ++propertyUnions;
149
+ ++preemptiveUnions;
150
150
  ++totalUnions;
151
151
  }
152
152
  } else ++lookupUnions;
@@ -195,17 +195,17 @@ public:
195
195
  {
196
196
  // result AND rhs = EMPTY_SET,
197
197
  intersectionCache[std::minmax(result, rhs)] = emptyPointsToId();
198
- ++propertyIntersections;
198
+ ++preemptiveIntersections;
199
199
  ++totalIntersections;
200
200
 
201
201
  // and result AND lhs = result,
202
202
  intersectionCache[std::minmax(result, lhs)] = result;
203
- ++propertyIntersections;
203
+ ++preemptiveIntersections;
204
204
  ++totalIntersections;
205
205
 
206
206
  // and result - rhs = result.
207
207
  complementCache[std::make_pair(result, rhs)] = result;
208
- ++propertyComplements;
208
+ ++preemptiveComplements;
209
209
  ++totalComplements;
210
210
  }
211
211
  } else ++lookupComplements;
@@ -252,7 +252,7 @@ public:
252
252
  if (result != rhs)
253
253
  {
254
254
  intersectionCache[std::minmax(result, rhs)] = result;
255
- ++propertyIntersections;
255
+ ++preemptiveIntersections;
256
256
  ++totalIntersections;
257
257
  }
258
258
 
@@ -260,7 +260,7 @@ public:
260
260
  if (result != lhs)
261
261
  {
262
262
  intersectionCache[std::minmax(result, lhs)] = result;
263
- ++propertyIntersections;
263
+ ++preemptiveIntersections;
264
264
  ++totalIntersections;
265
265
  }
266
266
 
@@ -269,7 +269,7 @@ public:
269
269
  if (result != emptyPointsToId() && result != lhs)
270
270
  {
271
271
  unionCache[std::minmax(lhs, result)] = lhs;
272
- ++propertyUnions;
272
+ ++preemptiveUnions;
273
273
  ++totalUnions;
274
274
  }
275
275
 
@@ -277,7 +277,7 @@ public:
277
277
  if (result != emptyPointsToId() && result != rhs)
278
278
  {
279
279
  unionCache[std::minmax(rhs, result)] = rhs;
280
- ++propertyUnions;
280
+ ++preemptiveUnions;
281
281
  ++totalUnions;
282
282
  }
283
283
  }
@@ -294,22 +294,25 @@ public:
294
294
 
295
295
  std::cout << "****Persistent Points-To Cache Statistics: " << subtitle << "****\n";
296
296
 
297
- std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
297
+ std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
298
298
 
299
- std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
300
- std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
301
- std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
302
- std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
299
+ std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
300
+ std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
301
+ std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
302
+ std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
303
+ std::cout << std::setw(fieldWidth) << "PreemptiveUnions" << preemptiveUnions << "\n";
303
304
 
304
- std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
305
- std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
306
- std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
307
- std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
305
+ std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
306
+ std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
307
+ std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
308
+ std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
309
+ std::cout << std::setw(fieldWidth) << "PreemptiveComplements" << preemptiveComplements << "\n";
308
310
 
309
- std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
310
- std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
311
- std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
312
- std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
311
+ std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
312
+ std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
313
+ std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
314
+ std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
315
+ std::cout << std::setw(fieldWidth) << "PreemptiveIntersections" << preemptiveIntersections << "\n";
313
316
 
314
317
  std::cout.flush();
315
318
  }
@@ -379,18 +382,21 @@ private:
379
382
  inline void initStats(void)
380
383
  {
381
384
 
382
- totalUnions = 0;
383
- uniqueUnions = 0;
384
- propertyUnions = 0;
385
- lookupUnions = 0;
386
- totalComplements = 0;
387
- uniqueComplements = 0;
388
- propertyComplements = 0;
389
- lookupComplements = 0;
390
- totalIntersections = 0;
391
- uniqueIntersections = 0;
392
- propertyIntersections = 0;
393
- lookupIntersections = 0;
385
+ totalUnions = 0;
386
+ uniqueUnions = 0;
387
+ propertyUnions = 0;
388
+ lookupUnions = 0;
389
+ preemptiveUnions = 0;
390
+ totalComplements = 0;
391
+ uniqueComplements = 0;
392
+ propertyComplements = 0;
393
+ lookupComplements = 0;
394
+ preemptiveComplements = 0;
395
+ totalIntersections = 0;
396
+ uniqueIntersections = 0;
397
+ propertyIntersections = 0;
398
+ lookupIntersections = 0;
399
+ preemptiveIntersections = 0;
394
400
  }
395
401
 
396
402
  private:
@@ -418,14 +424,17 @@ private:
418
424
  u64_t uniqueUnions;
419
425
  u64_t propertyUnions;
420
426
  u64_t lookupUnions;
427
+ u64_t preemptiveUnions;
421
428
  u64_t totalComplements;
422
429
  u64_t uniqueComplements;
423
430
  u64_t propertyComplements;
424
431
  u64_t lookupComplements;
432
+ u64_t preemptiveComplements;
425
433
  u64_t totalIntersections;
426
434
  u64_t uniqueIntersections;
427
435
  u64_t propertyIntersections;
428
436
  u64_t lookupIntersections;
437
+ u64_t preemptiveIntersections;
429
438
  };
430
439
 
431
440
  } // End namespace SVF
@@ -165,11 +165,7 @@ protected:
165
165
 
166
166
 
167
167
  /// Finalization of pointer analysis, and normalize points-to information to Bit Vector representation
168
- virtual void finalize()
169
- {
170
- normalizePointsTo();
171
- PointerAnalysis::finalize();
172
- }
168
+ virtual void finalize();
173
169
 
174
170
  /// Update callgraph. This should be implemented by its subclass.
175
171
  virtual inline bool updateCallGraph(const CallSiteToFunPtrMap&)
Binary file
@@ -138,7 +138,7 @@ public:
138
138
  if (lhs != result)
139
139
  {
140
140
  unionCache[std::minmax(lhs, result)] = result;
141
- ++propertyUnions;
141
+ ++preemptiveUnions;
142
142
  ++totalUnions;
143
143
  }
144
144
 
@@ -146,7 +146,7 @@ public:
146
146
  if (rhs != result)
147
147
  {
148
148
  unionCache[std::minmax(rhs, result)] = result;
149
- ++propertyUnions;
149
+ ++preemptiveUnions;
150
150
  ++totalUnions;
151
151
  }
152
152
  } else ++lookupUnions;
@@ -195,17 +195,17 @@ public:
195
195
  {
196
196
  // result AND rhs = EMPTY_SET,
197
197
  intersectionCache[std::minmax(result, rhs)] = emptyPointsToId();
198
- ++propertyIntersections;
198
+ ++preemptiveIntersections;
199
199
  ++totalIntersections;
200
200
 
201
201
  // and result AND lhs = result,
202
202
  intersectionCache[std::minmax(result, lhs)] = result;
203
- ++propertyIntersections;
203
+ ++preemptiveIntersections;
204
204
  ++totalIntersections;
205
205
 
206
206
  // and result - rhs = result.
207
207
  complementCache[std::make_pair(result, rhs)] = result;
208
- ++propertyComplements;
208
+ ++preemptiveComplements;
209
209
  ++totalComplements;
210
210
  }
211
211
  } else ++lookupComplements;
@@ -252,7 +252,7 @@ public:
252
252
  if (result != rhs)
253
253
  {
254
254
  intersectionCache[std::minmax(result, rhs)] = result;
255
- ++propertyIntersections;
255
+ ++preemptiveIntersections;
256
256
  ++totalIntersections;
257
257
  }
258
258
 
@@ -260,7 +260,7 @@ public:
260
260
  if (result != lhs)
261
261
  {
262
262
  intersectionCache[std::minmax(result, lhs)] = result;
263
- ++propertyIntersections;
263
+ ++preemptiveIntersections;
264
264
  ++totalIntersections;
265
265
  }
266
266
 
@@ -269,7 +269,7 @@ public:
269
269
  if (result != emptyPointsToId() && result != lhs)
270
270
  {
271
271
  unionCache[std::minmax(lhs, result)] = lhs;
272
- ++propertyUnions;
272
+ ++preemptiveUnions;
273
273
  ++totalUnions;
274
274
  }
275
275
 
@@ -277,7 +277,7 @@ public:
277
277
  if (result != emptyPointsToId() && result != rhs)
278
278
  {
279
279
  unionCache[std::minmax(rhs, result)] = rhs;
280
- ++propertyUnions;
280
+ ++preemptiveUnions;
281
281
  ++totalUnions;
282
282
  }
283
283
  }
@@ -294,22 +294,25 @@ public:
294
294
 
295
295
  std::cout << "****Persistent Points-To Cache Statistics: " << subtitle << "****\n";
296
296
 
297
- std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
297
+ std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
298
298
 
299
- std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
300
- std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
301
- std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
302
- std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
299
+ std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
300
+ std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
301
+ std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
302
+ std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
303
+ std::cout << std::setw(fieldWidth) << "PreemptiveUnions" << preemptiveUnions << "\n";
303
304
 
304
- std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
305
- std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
306
- std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
307
- std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
305
+ std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
306
+ std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
307
+ std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
308
+ std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
309
+ std::cout << std::setw(fieldWidth) << "PreemptiveComplements" << preemptiveComplements << "\n";
308
310
 
309
- std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
310
- std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
311
- std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
312
- std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
311
+ std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
312
+ std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
313
+ std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
314
+ std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
315
+ std::cout << std::setw(fieldWidth) << "PreemptiveIntersections" << preemptiveIntersections << "\n";
313
316
 
314
317
  std::cout.flush();
315
318
  }
@@ -379,18 +382,21 @@ private:
379
382
  inline void initStats(void)
380
383
  {
381
384
 
382
- totalUnions = 0;
383
- uniqueUnions = 0;
384
- propertyUnions = 0;
385
- lookupUnions = 0;
386
- totalComplements = 0;
387
- uniqueComplements = 0;
388
- propertyComplements = 0;
389
- lookupComplements = 0;
390
- totalIntersections = 0;
391
- uniqueIntersections = 0;
392
- propertyIntersections = 0;
393
- lookupIntersections = 0;
385
+ totalUnions = 0;
386
+ uniqueUnions = 0;
387
+ propertyUnions = 0;
388
+ lookupUnions = 0;
389
+ preemptiveUnions = 0;
390
+ totalComplements = 0;
391
+ uniqueComplements = 0;
392
+ propertyComplements = 0;
393
+ lookupComplements = 0;
394
+ preemptiveComplements = 0;
395
+ totalIntersections = 0;
396
+ uniqueIntersections = 0;
397
+ propertyIntersections = 0;
398
+ lookupIntersections = 0;
399
+ preemptiveIntersections = 0;
394
400
  }
395
401
 
396
402
  private:
@@ -418,14 +424,17 @@ private:
418
424
  u64_t uniqueUnions;
419
425
  u64_t propertyUnions;
420
426
  u64_t lookupUnions;
427
+ u64_t preemptiveUnions;
421
428
  u64_t totalComplements;
422
429
  u64_t uniqueComplements;
423
430
  u64_t propertyComplements;
424
431
  u64_t lookupComplements;
432
+ u64_t preemptiveComplements;
425
433
  u64_t totalIntersections;
426
434
  u64_t uniqueIntersections;
427
435
  u64_t propertyIntersections;
428
436
  u64_t lookupIntersections;
437
+ u64_t preemptiveIntersections;
429
438
  };
430
439
 
431
440
  } // End namespace SVF
@@ -165,11 +165,7 @@ protected:
165
165
 
166
166
 
167
167
  /// Finalization of pointer analysis, and normalize points-to information to Bit Vector representation
168
- virtual void finalize()
169
- {
170
- normalizePointsTo();
171
- PointerAnalysis::finalize();
172
- }
168
+ virtual void finalize();
173
169
 
174
170
  /// Update callgraph. This should be implemented by its subclass.
175
171
  virtual inline bool updateCallGraph(const CallSiteToFunPtrMap&)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.714",
3
+ "version": "1.0.718",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {