Add callgrind client requests

This commit is contained in:
2024-02-18 19:48:27 -08:00
parent 69ce3e2a20
commit deb85f5645

View File

@@ -18,6 +18,11 @@
#include <utility>
#include <vector>
#if __has_include(<valgrind/callgrind.h>)
#define CALLGRIND
#include <valgrind/callgrind.h>
#endif
#define DEBUG_VERBOSE 0
[[nodiscard]] inline auto
@@ -556,7 +561,13 @@ template <class ConflictSetImpl> struct TestDriver {
assert(iter == keys.end());
assert(i == numPointWrites + numRangeWrites);
#ifdef CALLGRIND
CALLGRIND_START_INSTRUMENTATION;
#endif
cs.addWrites(writes, numPointWrites + numRangeWrites);
#ifdef CALLGRIND
CALLGRIND_STOP_INSTRUMENTATION;
#endif
refImpl.addWrites(writes, numPointWrites + numRangeWrites);
}
{
@@ -618,7 +629,13 @@ template <class ConflictSetImpl> struct TestDriver {
new (arena) ConflictSet::Result[numPointReads + numRangeReads];
auto *results2 =
new (arena) ConflictSet::Result[numPointReads + numRangeReads];
#ifdef CALLGRIND
CALLGRIND_START_INSTRUMENTATION;
#endif
cs.check(reads, results1, numPointReads + numRangeReads);
#ifdef CALLGRIND
CALLGRIND_STOP_INSTRUMENTATION;
#endif
refImpl.check(reads, results2, numPointReads + numRangeReads);
for (int i = 0; i < numPointReads + numRangeReads; ++i) {
if (results1[i] != results2[i]) {