diff options
author | Derek Mauro <dmauro@google.com> | 2022-12-12 13:15:40 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-12-12 13:16:33 -0800 |
commit | 553491a54cdb842ab583942e1058cbdcedd32018 (patch) | |
tree | 07dc831effb7532023a0582a799838858baab13c | |
parent | b23ae860ba864e4224aab7f7073d7d0d60f05a43 (diff) |
Only build the section of flag_benchmark used for viewing the
disassembly under LLVM. Due to the issue described in
https://github.com/abseil/abseil-cpp/issues/1340 and
https://github.com/google/benchmark/commit/8545dfb3ea301f5c77626a046d4756ef9f2e4970
it no longer builds under GCC.
The other changes are necessary to fix the build using the latest benchmark snapshot
Fixes #1340
PiperOrigin-RevId: 494809290
Change-Id: I4a03b2e2dcbdc273e59f1f09f204322e388e7cea
-rw-r--r-- | WORKSPACE | 8 | ||||
-rw-r--r-- | absl/flags/flag_benchmark.cc | 5 | ||||
-rw-r--r-- | absl/numeric/bits_benchmark.cc | 4 |
3 files changed, 9 insertions, 8 deletions
@@ -39,10 +39,10 @@ http_archive( # Google benchmark. http_archive( - name = "com_github_google_benchmark", # 2021-09-20T09:19:51Z - sha256 = "62e2f2e6d8a744d67e4bbc212fcfd06647080de4253c97ad5c6749e09faf2cb0", - strip_prefix = "benchmark-0baacde3618ca617da95375e0af13ce1baadea47", - urls = ["https://github.com/google/benchmark/archive/0baacde3618ca617da95375e0af13ce1baadea47.zip"], + name = "com_github_google_benchmark", # 2022-12-10T23:42:44Z + sha256 = "a62735f4f4bebc069225aa725dc68eb6836dcdbf550424b5f18e2673e7d40f2c", + strip_prefix = "benchmark-da652a748675b679947710117329e9f77f374f2d", + urls = ["https://github.com/google/benchmark/archive/da652a748675b679947710117329e9f77f374f2d.zip"], ) # Bazel Skylib. diff --git a/absl/flags/flag_benchmark.cc b/absl/flags/flag_benchmark.cc index fc572d9c..758a6a55 100644 --- a/absl/flags/flag_benchmark.cc +++ b/absl/flags/flag_benchmark.cc @@ -241,10 +241,11 @@ BENCHMARK(BM_ThreadedFindCommandLineFlag)->ThreadRange(1, 16); } // namespace +#ifdef __llvm__ +// To view disassembly use: gdb ${BINARY} -batch -ex "disassemble /s $FUNC" #define InvokeGetFlag(T) \ T AbslInvokeGetFlag##T() { return absl::GetFlag(SINGLE_FLAG(T)); } \ int odr##T = (benchmark::DoNotOptimize(AbslInvokeGetFlag##T), 1); BENCHMARKED_TYPES(InvokeGetFlag) - -// To veiw disassembly use: gdb ${BINARY} -batch -ex "disassemble /s $FUNC" +#endif // __llvm__ diff --git a/absl/numeric/bits_benchmark.cc b/absl/numeric/bits_benchmark.cc index 719bfa81..1b7f35dd 100644 --- a/absl/numeric/bits_benchmark.cc +++ b/absl/numeric/bits_benchmark.cc @@ -34,7 +34,7 @@ static void BM_bitwidth(benchmark::State& state) { values.push_back(absl::Uniform<T>(rng, 0, std::numeric_limits<T>::max())); } - while (state.KeepRunningBatch(count)) { + while (state.KeepRunningBatch(static_cast<int64_t>(count))) { for (size_t i = 0; i < count; ++i) { benchmark::DoNotOptimize(values[i]); } @@ -56,7 +56,7 @@ static void BM_bitwidth_nonzero(benchmark::State& state) { values.push_back(absl::Uniform<T>(rng, 1, std::numeric_limits<T>::max())); } - while (state.KeepRunningBatch(count)) { + while (state.KeepRunningBatch(static_cast<int64_t>(count))) { for (size_t i = 0; i < count; ++i) { const T value = values[i]; ABSL_ASSUME(value > 0); |