Skip to content

Commit 68e21b6

Browse files
committed
feat: add support for memory mode
1 parent acce038 commit 68e21b6

File tree

7 files changed

+26
-19
lines changed

7 files changed

+26
-19
lines changed

core/BUILD

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ cc_library(
8181
defines = [
8282
"CODSPEED_VERSION=\\\"{}\\\"".format(CODSPEED_VERSION),
8383
] + select({
84-
":instrumentation_mode": ["CODSPEED_ENABLED", "CODSPEED_SIMULATION"],
85-
":simulation_mode": ["CODSPEED_ENABLED", "CODSPEED_SIMULATION"],
84+
":instrumentation_mode": ["CODSPEED_ENABLED", "CODSPEED_ANALYSIS"],
85+
":simulation_mode": ["CODSPEED_ENABLED", "CODSPEED_ANALYSIS"],
86+
":memory_mode": ["CODSPEED_ENABLED", "CODSPEED_ANALYSIS"],
8687
":walltime_mode": ["CODSPEED_ENABLED", "CODSPEED_WALLTIME"],
8788
"//conditions:default": [],
8889
}),
@@ -98,6 +99,7 @@ string_flag(
9899
"off",
99100
"instrumentation",
100101
"simulation",
102+
"memory",
101103
"walltime",
102104
],
103105
visibility = ["//visibility:public"],
@@ -113,6 +115,11 @@ config_setting(
113115
flag_values = {":codspeed_mode": "simulation"},
114116
)
115117

118+
config_setting(
119+
name = "memory_mode",
120+
flag_values = {":codspeed_mode": "memory"},
121+
)
122+
116123
config_setting(
117124
name = "walltime_mode",
118125
flag_values = {":codspeed_mode": "walltime"},

core/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ target_compile_definitions(
143143

144144
message(STATUS "Using codspeed root directory: ${CODSPEED_ROOT_DIR}")
145145

146-
set(CODSPEED_MODE_ALLOWED_VALUES "off" "instrumentation" "simulation" "walltime")
146+
set(CODSPEED_MODE_ALLOWED_VALUES "off" "instrumentation" "simulation" "memory" "walltime")
147147
set(CODSPEED_MODE "off" CACHE STRING "Build mode for Codspeed")
148148
set_property(
149149
CACHE CODSPEED_MODE
@@ -166,10 +166,10 @@ if(NOT CODSPEED_MODE STREQUAL "off")
166166
endif()
167167

168168
# Define a preprocessor macro based on the build mode
169-
if(CODSPEED_MODE STREQUAL "instrumentation" OR CODSPEED_MODE STREQUAL "simulation")
169+
if(CODSPEED_MODE STREQUAL "instrumentation" OR CODSPEED_MODE STREQUAL "simulation" OR CODSPEED_MODE STREQUAL "memory")
170170
target_compile_definitions(
171171
codspeed
172-
PUBLIC -DCODSPEED_SIMULATION
172+
PUBLIC -DCODSPEED_ANALYSIS
173173
)
174174
elseif(CODSPEED_MODE STREQUAL "walltime")
175175
target_compile_definitions(codspeed PUBLIC -DCODSPEED_WALLTIME)

google_benchmark/include/benchmark/benchmark.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ class BENCHMARK_EXPORT BENCHMARK_INTERNAL_CACHELINE_ALIGNED State {
946946

947947
public:
948948
const IterationCount max_iterations;
949-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
949+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
950950
codspeed::CodSpeed* codspeed_;
951951
#endif
952952
#ifdef CODSPEED_WALLTIME
@@ -973,7 +973,7 @@ class BENCHMARK_EXPORT BENCHMARK_INTERNAL_CACHELINE_ALIGNED State {
973973
internal::ThreadTimer* timer, internal::ThreadManager* manager,
974974
internal::PerfCountersMeasurement* perf_counters_measurement,
975975
ProfilerManager* profiler_manager
976-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
976+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
977977
,
978978
codspeed::CodSpeed* codspeed = NULL
979979
#endif
@@ -1071,12 +1071,12 @@ struct State::StateIterator {
10711071
if (BENCHMARK_BUILTIN_EXPECT(cached_ != 0, true)) {
10721072
return true;
10731073
}
1074-
#ifdef CODSPEED_SIMULATION
1074+
#ifdef CODSPEED_ANALYSIS
10751075
measurement_stop();
10761076
#endif
10771077
parent_->FinishKeepRunning();
10781078

1079-
#ifdef CODSPEED_SIMULATION
1079+
#ifdef CODSPEED_ANALYSIS
10801080
if (parent_->codspeed_ != NULL) {
10811081
parent_->codspeed_->end_benchmark();
10821082
}
@@ -1093,14 +1093,14 @@ inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::begin() {
10931093
return StateIterator(this);
10941094
}
10951095
inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::end() {
1096-
#ifdef CODSPEED_SIMULATION
1096+
#ifdef CODSPEED_ANALYSIS
10971097
if (this->codspeed_ != NULL) {
10981098
this->codspeed_->start_benchmark(name_);
10991099
}
11001100
#endif
11011101

11021102
StartKeepRunning();
1103-
#ifdef CODSPEED_SIMULATION
1103+
#ifdef CODSPEED_ANALYSIS
11041104
measurement_start();
11051105
#endif
11061106
return StateIterator();

google_benchmark/src/benchmark.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,15 +186,15 @@ State::State(std::string name, IterationCount max_iters,
186186
internal::ThreadTimer* timer, internal::ThreadManager* manager,
187187
internal::PerfCountersMeasurement* perf_counters_measurement,
188188
ProfilerManager* profiler_manager
189-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
189+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
190190
,
191191
codspeed::CodSpeed* codspeed
192192
#endif
193193
)
194194
: total_iterations_(0),
195195
batch_leftover_(0),
196196
max_iterations(max_iters),
197-
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
197+
#if defined(CODSPEED_ANALYSIS) || defined(CODSPEED_WALLTIME)
198198
codspeed_(codspeed),
199199
#endif
200200
#ifdef CODSPEED_WALLTIME
@@ -462,7 +462,7 @@ void RunBenchmarks(const std::vector<BenchmarkInstance>& benchmarks,
462462
#ifdef CODSPEED_ENABLED
463463
auto& Err = display_reporter->GetErrorStream();
464464
// Determine the width of the name field using a minimum width of 10.
465-
#ifdef CODSPEED_SIMULATION
465+
#ifdef CODSPEED_ANALYSIS
466466
Err << "Codspeed mode: simulation" << "\n";
467467
#elif defined(CODSPEED_WALLTIME)
468468
Err << "Codspeed mode: walltime" << "\n";

google_benchmark/src/benchmark_api_internal.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ BenchmarkInstance::BenchmarkInstance(Benchmark* benchmark, int family_idx,
9191
teardown_ = benchmark_.teardown_;
9292
}
9393

94-
#ifdef CODSPEED_SIMULATION
94+
#ifdef CODSPEED_ANALYSIS
9595
State BenchmarkInstance::RunSimulation(
9696
codspeed::CodSpeed* codspeed, internal::ThreadTimer* timer,
9797
internal::ThreadManager* manager,

google_benchmark/src/benchmark_api_internal.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <vector>
1010

1111
#include "benchmark/benchmark.h"
12-
#ifdef CODSPEED_SIMULATION
12+
#ifdef CODSPEED_ANALYSIS
1313
#include "codspeed.h"
1414
#endif
1515
#include "commandlineflags.h"
@@ -38,7 +38,7 @@ class BenchmarkInstance {
3838
BigOFunc* complexity_lambda() const { return complexity_lambda_; }
3939
const std::vector<Statistics>& statistics() const { return statistics_; }
4040
int repetitions() const {
41-
#ifdef CODSPEED_SIMULATION
41+
#ifdef CODSPEED_ANALYSIS
4242
(void)repetitions_;
4343
return 1;
4444
#else
@@ -57,7 +57,7 @@ class BenchmarkInstance {
5757
internal::PerfCountersMeasurement* perf_counters_measurement,
5858
ProfilerManager* profiler_manager) const;
5959

60-
#ifdef CODSPEED_SIMULATION
60+
#ifdef CODSPEED_ANALYSIS
6161
State RunSimulation(
6262
codspeed::CodSpeed* codspeed, internal::ThreadTimer* timer,
6363
internal::ThreadManager* manager,

google_benchmark/src/benchmark_runner.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ void BenchmarkRunner::RunProfilerManager(IterationCount profile_iterations) {
461461
}
462462

463463
void BenchmarkRunner::DoOneRepetition() {
464-
#ifdef CODSPEED_SIMULATION
464+
#ifdef CODSPEED_ANALYSIS
465465
std::unique_ptr<internal::ThreadManager> manager;
466466
manager.reset(new internal::ThreadManager(b.threads()));
467467
internal::ThreadTimer timer = internal::ThreadTimer::Create();

0 commit comments

Comments
 (0)