Skip to content

Commit a1db652

Browse files
fix(google_benchmark): move valgrind trapdoor to a better place
1 parent 9c8e94d commit a1db652

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

google_benchmark/include/benchmark/benchmark.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,12 @@ BENCHMARK(BM_test)->Unit(benchmark::kMillisecond);
183183

184184
#include "benchmark/export.h"
185185

186+
#ifdef CODSPEED_ENABLED
187+
#include <codspeed.h>
188+
189+
#include <filesystem>
190+
#endif // CODSPEED_ENABLED
191+
186192
#if defined(_MSC_VER)
187193
#include <intrin.h> // for _ReadWriteBarrier
188194
#endif
@@ -1059,10 +1065,16 @@ struct State::StateIterator {
10591065
};
10601066

10611067
inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::begin() {
1068+
#ifdef CODSPEED_INSTRUMENTATION
1069+
codspeed::CodSpeed::getInstance()->start_benchmark(name());
1070+
#endif
10621071
return StateIterator(this);
10631072
}
10641073
inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::end() {
10651074
StartKeepRunning();
1075+
#ifdef CODSPEED_INSTRUMENTATION
1076+
codspeed::CodSpeed::getInstance()->end_benchmark();
1077+
#endif
10661078
return StateIterator();
10671079
}
10681080

@@ -1439,10 +1451,6 @@ class Fixture : public internal::Benchmark {
14391451
n) [[maybe_unused]]
14401452

14411453
#ifdef CODSPEED_ENABLED
1442-
#include <codspeed.h>
1443-
1444-
#include <filesystem>
1445-
14461454
#define CUR_FILE \
14471455
codspeed::get_path_relative_to_workspace(__FILE__) + "::"
14481456
#define NAMESPACE \

google_benchmark/src/benchmark_api_internal.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,18 +97,17 @@ State BenchmarkInstance::RunInstrumented(
9797
internal::ThreadManager* manager,
9898
internal::PerfCountersMeasurement* perf_counters_measurement,
9999
ProfilerManager* profiler_manager) const {
100-
State st(name_.function_name, 1, args_, 0, 1, timer, manager,
101-
perf_counters_measurement, profiler_manager);
102100
// Do one repetition to avoid flakiness due to inconcistencies in CPU cache
103101
// from execution order
104102

105103
internal::ThreadTimer warmup_timer = internal::ThreadTimer::Create();
106104
State warmup_state(name_.function_name, 1, args_, 0, 1, &warmup_timer,
107105
manager, perf_counters_measurement, profiler_manager);
108106
benchmark_.Run(warmup_state);
109-
codspeed->start_benchmark(name().str());
107+
108+
State st(name().str(), 1, args_, 0, 1, timer, manager,
109+
perf_counters_measurement, profiler_manager);
110110
benchmark_.Run(st);
111-
codspeed->end_benchmark();
112111
return st;
113112
}
114113
#endif

0 commit comments

Comments
 (0)