From f073fe8ee5dcb0aa18c893198747062f2f51ab59 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Thu, 13 Oct 2022 14:12:39 -0700 Subject: Fix "unsafe narrowing" warnings in absl, 12/12. Addresses failures with the following, in some files: -Wshorten-64-to-32 -Wimplicit-int-conversion -Wsign-compare -Wsign-conversion -Wtautological-unsigned-zero-compare (This specific CL enables these warnings and fixes the remaining known issues.) Bug: chromium:1292951 PiperOrigin-RevId: 480981210 Change-Id: I92d5023c6833e24d6aa29b10d433116329972f41 --- absl/numeric/bits_benchmark.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'absl/numeric/bits_benchmark.cc') diff --git a/absl/numeric/bits_benchmark.cc b/absl/numeric/bits_benchmark.cc index b9759583..719bfa81 100644 --- a/absl/numeric/bits_benchmark.cc +++ b/absl/numeric/bits_benchmark.cc @@ -25,17 +25,17 @@ namespace { template static void BM_bitwidth(benchmark::State& state) { - const int count = state.range(0); + const auto count = static_cast(state.range(0)); absl::BitGen rng; std::vector values; values.reserve(count); - for (int i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { values.push_back(absl::Uniform(rng, 0, std::numeric_limits::max())); } while (state.KeepRunningBatch(count)) { - for (int i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { benchmark::DoNotOptimize(values[i]); } } @@ -47,17 +47,17 @@ BENCHMARK_TEMPLATE(BM_bitwidth, uint64_t)->Range(1, 1 << 20); template static void BM_bitwidth_nonzero(benchmark::State& state) { - const int count = state.range(0); + const auto count = static_cast(state.range(0)); absl::BitGen rng; std::vector values; values.reserve(count); - for (int i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { values.push_back(absl::Uniform(rng, 1, std::numeric_limits::max())); } while (state.KeepRunningBatch(count)) { - for (int i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { const T value = values[i]; ABSL_ASSUME(value > 0); benchmark::DoNotOptimize(value); -- cgit v1.2.3 From 553491a54cdb842ab583942e1058cbdcedd32018 Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Mon, 12 Dec 2022 13:15:40 -0800 Subject: 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 --- WORKSPACE | 8 ++++---- absl/flags/flag_benchmark.cc | 5 +++-- absl/numeric/bits_benchmark.cc | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) (limited to 'absl/numeric/bits_benchmark.cc') diff --git a/WORKSPACE b/WORKSPACE index 072fa93d..a412adb2 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -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(rng, 0, std::numeric_limits::max())); } - while (state.KeepRunningBatch(count)) { + while (state.KeepRunningBatch(static_cast(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(rng, 1, std::numeric_limits::max())); } - while (state.KeepRunningBatch(count)) { + while (state.KeepRunningBatch(static_cast(count))) { for (size_t i = 0; i < count; ++i) { const T value = values[i]; ABSL_ASSUME(value > 0); -- cgit v1.2.3 From 8caa47cfcddbcddd36d22bbab13f4cd9bccbf5c2 Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Tue, 20 Dec 2022 17:22:10 -0800 Subject: bits_benchmark: Fix typo to benchmark the intended function PiperOrigin-RevId: 496788919 Change-Id: I8867f8b884b81aa2f7b6d08dabd90c75965d1939 --- absl/numeric/bits_benchmark.cc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'absl/numeric/bits_benchmark.cc') diff --git a/absl/numeric/bits_benchmark.cc b/absl/numeric/bits_benchmark.cc index 1b7f35dd..2c89afdb 100644 --- a/absl/numeric/bits_benchmark.cc +++ b/absl/numeric/bits_benchmark.cc @@ -24,7 +24,7 @@ namespace absl { namespace { template -static void BM_bitwidth(benchmark::State& state) { +static void BM_bit_width(benchmark::State& state) { const auto count = static_cast(state.range(0)); absl::BitGen rng; @@ -36,17 +36,17 @@ static void BM_bitwidth(benchmark::State& state) { while (state.KeepRunningBatch(static_cast(count))) { for (size_t i = 0; i < count; ++i) { - benchmark::DoNotOptimize(values[i]); + benchmark::DoNotOptimize(absl::bit_width(values[i])); } } } -BENCHMARK_TEMPLATE(BM_bitwidth, uint8_t)->Range(1, 1 << 20); -BENCHMARK_TEMPLATE(BM_bitwidth, uint16_t)->Range(1, 1 << 20); -BENCHMARK_TEMPLATE(BM_bitwidth, uint32_t)->Range(1, 1 << 20); -BENCHMARK_TEMPLATE(BM_bitwidth, uint64_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width, uint8_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width, uint16_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width, uint32_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width, uint64_t)->Range(1, 1 << 20); template -static void BM_bitwidth_nonzero(benchmark::State& state) { +static void BM_bit_width_nonzero(benchmark::State& state) { const auto count = static_cast(state.range(0)); absl::BitGen rng; @@ -60,14 +60,14 @@ static void BM_bitwidth_nonzero(benchmark::State& state) { for (size_t i = 0; i < count; ++i) { const T value = values[i]; ABSL_ASSUME(value > 0); - benchmark::DoNotOptimize(value); + benchmark::DoNotOptimize(absl::bit_width(value)); } } } -BENCHMARK_TEMPLATE(BM_bitwidth_nonzero, uint8_t)->Range(1, 1 << 20); -BENCHMARK_TEMPLATE(BM_bitwidth_nonzero, uint16_t)->Range(1, 1 << 20); -BENCHMARK_TEMPLATE(BM_bitwidth_nonzero, uint32_t)->Range(1, 1 << 20); -BENCHMARK_TEMPLATE(BM_bitwidth_nonzero, uint64_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width_nonzero, uint8_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width_nonzero, uint16_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width_nonzero, uint32_t)->Range(1, 1 << 20); +BENCHMARK_TEMPLATE(BM_bit_width_nonzero, uint64_t)->Range(1, 1 << 20); } // namespace } // namespace absl -- cgit v1.2.3