Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion core/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ cc_library(
defines = [
"CODSPEED_VERSION=\\\"{}\\\"".format(CODSPEED_VERSION),
] + select({
":instrumentation_mode": ["CODSPEED_ENABLED", "CODSPEED_INSTRUMENTATION"],
":instrumentation_mode": ["CODSPEED_ENABLED", "CODSPEED_SIMULATION"],
":simulation_mode": ["CODSPEED_ENABLED", "CODSPEED_SIMULATION"],
":walltime_mode": ["CODSPEED_ENABLED", "CODSPEED_WALLTIME"],
"//conditions:default": [],
}),
Expand All @@ -96,6 +97,7 @@ string_flag(
values = [
"off",
"instrumentation",
"simulation",
"walltime",
],
visibility = ["//visibility:public"],
Expand All @@ -106,6 +108,11 @@ config_setting(
flag_values = {":codspeed_mode": "instrumentation"},
)

config_setting(
name = "simulation_mode",
flag_values = {":codspeed_mode": "simulation"},
)

config_setting(
name = "walltime_mode",
flag_values = {":codspeed_mode": "walltime"},
Expand Down
6 changes: 3 additions & 3 deletions core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ target_compile_definitions(

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

set(CODSPEED_MODE_ALLOWED_VALUES "off" "instrumentation" "walltime")
set(CODSPEED_MODE_ALLOWED_VALUES "off" "instrumentation" "simulation" "walltime")
set(CODSPEED_MODE "off" CACHE STRING "Build mode for Codspeed")
set_property(
CACHE CODSPEED_MODE
Expand All @@ -166,10 +166,10 @@ if(NOT CODSPEED_MODE STREQUAL "off")
endif()

# Define a preprocessor macro based on the build mode
if(CODSPEED_MODE STREQUAL "instrumentation")
if(CODSPEED_MODE STREQUAL "instrumentation" OR CODSPEED_MODE STREQUAL "simulation")
target_compile_definitions(
codspeed
PUBLIC -DCODSPEED_INSTRUMENTATION
PUBLIC -DCODSPEED_SIMULATION
)
elseif(CODSPEED_MODE STREQUAL "walltime")
target_compile_definitions(codspeed PUBLIC -DCODSPEED_WALLTIME)
Expand Down
14 changes: 7 additions & 7 deletions google_benchmark/include/benchmark/benchmark.h
Original file line number Diff line number Diff line change
Expand Up @@ -946,7 +946,7 @@ class BENCHMARK_EXPORT BENCHMARK_INTERNAL_CACHELINE_ALIGNED State {

public:
const IterationCount max_iterations;
#if defined(CODSPEED_INSTRUMENTATION) || defined(CODSPEED_WALLTIME)
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
codspeed::CodSpeed* codspeed_;
#endif
#ifdef CODSPEED_WALLTIME
Expand All @@ -973,7 +973,7 @@ class BENCHMARK_EXPORT BENCHMARK_INTERNAL_CACHELINE_ALIGNED State {
internal::ThreadTimer* timer, internal::ThreadManager* manager,
internal::PerfCountersMeasurement* perf_counters_measurement,
ProfilerManager* profiler_manager
#if defined(CODSPEED_INSTRUMENTATION) || defined(CODSPEED_WALLTIME)
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
,
codspeed::CodSpeed* codspeed = NULL
#endif
Expand Down Expand Up @@ -1071,12 +1071,12 @@ struct State::StateIterator {
if (BENCHMARK_BUILTIN_EXPECT(cached_ != 0, true)) {
return true;
}
#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
measurement_stop();
#endif
parent_->FinishKeepRunning();

#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
if (parent_->codspeed_ != NULL) {
parent_->codspeed_->end_benchmark();
}
Expand All @@ -1093,14 +1093,14 @@ inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::begin() {
return StateIterator(this);
}
inline BENCHMARK_ALWAYS_INLINE State::StateIterator State::end() {
#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
if (this->codspeed_ != NULL) {
this->codspeed_->start_benchmark(name_);
}
#endif

StartKeepRunning();
#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
measurement_start();
#endif
return StateIterator();
Expand Down
8 changes: 4 additions & 4 deletions google_benchmark/src/benchmark.cc
Original file line number Diff line number Diff line change
Expand Up @@ -186,15 +186,15 @@ State::State(std::string name, IterationCount max_iters,
internal::ThreadTimer* timer, internal::ThreadManager* manager,
internal::PerfCountersMeasurement* perf_counters_measurement,
ProfilerManager* profiler_manager
#if defined(CODSPEED_INSTRUMENTATION) || defined(CODSPEED_WALLTIME)
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
,
codspeed::CodSpeed* codspeed
#endif
)
: total_iterations_(0),
batch_leftover_(0),
max_iterations(max_iters),
#if defined(CODSPEED_INSTRUMENTATION) || defined(CODSPEED_WALLTIME)
#if defined(CODSPEED_SIMULATION) || defined(CODSPEED_WALLTIME)
codspeed_(codspeed),
#endif
#ifdef CODSPEED_WALLTIME
Expand Down Expand Up @@ -462,8 +462,8 @@ void RunBenchmarks(const std::vector<BenchmarkInstance>& benchmarks,
#ifdef CODSPEED_ENABLED
auto& Err = display_reporter->GetErrorStream();
// Determine the width of the name field using a minimum width of 10.
#ifdef CODSPEED_INSTRUMENTATION
Err << "Codspeed mode: instrumentation" << "\n";
#ifdef CODSPEED_SIMULATION
Err << "Codspeed mode: simulation" << "\n";
#elif defined(CODSPEED_WALLTIME)
Err << "Codspeed mode: walltime" << "\n";
#endif
Expand Down
4 changes: 2 additions & 2 deletions google_benchmark/src/benchmark_api_internal.cc
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ BenchmarkInstance::BenchmarkInstance(Benchmark* benchmark, int family_idx,
teardown_ = benchmark_.teardown_;
}

#ifdef CODSPEED_INSTRUMENTATION
State BenchmarkInstance::RunInstrumented(
#ifdef CODSPEED_SIMULATION
State BenchmarkInstance::RunSimulation(
codspeed::CodSpeed* codspeed, internal::ThreadTimer* timer,
internal::ThreadManager* manager,
internal::PerfCountersMeasurement* perf_counters_measurement,
Expand Down
8 changes: 4 additions & 4 deletions google_benchmark/src/benchmark_api_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include <vector>

#include "benchmark/benchmark.h"
#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
#include "codspeed.h"
#endif
#include "commandlineflags.h"
Expand Down Expand Up @@ -38,7 +38,7 @@ class BenchmarkInstance {
BigOFunc* complexity_lambda() const { return complexity_lambda_; }
const std::vector<Statistics>& statistics() const { return statistics_; }
int repetitions() const {
#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
(void)repetitions_;
return 1;
#else
Expand All @@ -57,8 +57,8 @@ class BenchmarkInstance {
internal::PerfCountersMeasurement* perf_counters_measurement,
ProfilerManager* profiler_manager) const;

#ifdef CODSPEED_INSTRUMENTATION
State RunInstrumented(
#ifdef CODSPEED_SIMULATION
State RunSimulation(
codspeed::CodSpeed* codspeed, internal::ThreadTimer* timer,
internal::ThreadManager* manager,
internal::PerfCountersMeasurement* perf_counters_measurement,
Expand Down
6 changes: 3 additions & 3 deletions google_benchmark/src/benchmark_runner.cc
Original file line number Diff line number Diff line change
Expand Up @@ -461,14 +461,14 @@ void BenchmarkRunner::RunProfilerManager(IterationCount profile_iterations) {
}

void BenchmarkRunner::DoOneRepetition() {
#ifdef CODSPEED_INSTRUMENTATION
#ifdef CODSPEED_SIMULATION
std::unique_ptr<internal::ThreadManager> manager;
manager.reset(new internal::ThreadManager(b.threads()));
internal::ThreadTimer timer = internal::ThreadTimer::Create();
b.Setup();
measurement_start();
State st = b.RunInstrumented(codspeed::CodSpeed::getInstance(), &timer,
manager.get(), nullptr, nullptr);
State st = b.RunSimulation(codspeed::CodSpeed::getInstance(), &timer,
manager.get(), nullptr, nullptr);
measurement_stop();
b.Teardown();

Expand Down
Loading