diff options
| author | Nathan Moinvaziri <nathan@nathanm.com> | 2026-01-21 17:10:14 -0800 |
|---|---|---|
| committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2026-01-24 16:07:20 +0100 |
| commit | 49dbc2f56e380d4fb670efc858919445d13071ab (patch) | |
| tree | 2e6eff302f10331ceacb2a439a926cac0ae13a09 /test | |
| parent | d47d6c3c7aced39bae955010c383abb0d9e73b03 (diff) | |
| download | Project-Tick-49dbc2f56e380d4fb670efc858919445d13071ab.tar.gz Project-Tick-49dbc2f56e380d4fb670efc858919445d13071ab.zip | |
Move DoNotOptimize in benchmark loop to prevent it being optimized away
In some cases I've noticed incorrect 0 benchmark results from compiler
optimizing away len during hash benchmarks.
Diffstat (limited to 'test')
| -rw-r--r-- | test/benchmarks/benchmark_adler32.cc | 6 | ||||
| -rw-r--r-- | test/benchmarks/benchmark_adler32_copy.cc | 6 | ||||
| -rw-r--r-- | test/benchmarks/benchmark_compare256.cc | 6 | ||||
| -rw-r--r-- | test/benchmarks/benchmark_compare256_rle.cc | 6 | ||||
| -rw-r--r-- | test/benchmarks/benchmark_compress.cc | 5 | ||||
| -rw-r--r-- | test/benchmarks/benchmark_crc32.cc | 6 | ||||
| -rw-r--r-- | test/benchmarks/benchmark_crc32_copy.cc | 6 |
7 files changed, 21 insertions, 20 deletions
diff --git a/test/benchmarks/benchmark_adler32.cc b/test/benchmarks/benchmark_adler32.cc index 8fb2130041..5ee9102e23 100644 --- a/test/benchmarks/benchmark_adler32.cc +++ b/test/benchmarks/benchmark_adler32.cc @@ -41,10 +41,10 @@ public: misalign = 0; else misalign += (DO_ALIGNED) ? 16 : 1; - } - // Prevent the result from being optimized away - benchmark::DoNotOptimize(hash); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(hash); + } } void TearDown(const ::benchmark::State&) { diff --git a/test/benchmarks/benchmark_adler32_copy.cc b/test/benchmarks/benchmark_adler32_copy.cc index 9d2994f4ad..6d913b1d19 100644 --- a/test/benchmarks/benchmark_adler32_copy.cc +++ b/test/benchmarks/benchmark_adler32_copy.cc @@ -45,10 +45,10 @@ public: misalign = 0; else misalign += (DO_ALIGNED) ? 16 : 1; - } - // Prevent the result from being optimized away - benchmark::DoNotOptimize(hash); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(hash); + } } void TearDown(const ::benchmark::State&) { diff --git a/test/benchmarks/benchmark_compare256.cc b/test/benchmarks/benchmark_compare256.cc index 4b616f5a52..eb103af0d1 100644 --- a/test/benchmarks/benchmark_compare256.cc +++ b/test/benchmarks/benchmark_compare256.cc @@ -49,10 +49,10 @@ public: misalign = 0; else misalign++; - } - // Prevent the result from being optimized away - benchmark::DoNotOptimize(len); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(len); + } } void TearDown(const ::benchmark::State&) { diff --git a/test/benchmarks/benchmark_compare256_rle.cc b/test/benchmarks/benchmark_compare256_rle.cc index 7e6551dbd7..96489cf59a 100644 --- a/test/benchmarks/benchmark_compare256_rle.cc +++ b/test/benchmarks/benchmark_compare256_rle.cc @@ -47,10 +47,10 @@ public: misalign = 0; else misalign++; - } - // Prevent the result from being optimized away - benchmark::DoNotOptimize(len); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(len); + } } void TearDown(const ::benchmark::State&) { diff --git a/test/benchmarks/benchmark_compress.cc b/test/benchmarks/benchmark_compress.cc index b1a082da83..ebaf76cc40 100644 --- a/test/benchmarks/benchmark_compress.cc +++ b/test/benchmarks/benchmark_compress.cc @@ -54,9 +54,10 @@ public: fprintf(stderr, "compress() failed with error %d\n", err); abort(); } - } - benchmark::DoNotOptimize(err); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(err); + } } void TearDown(const ::benchmark::State&) { diff --git a/test/benchmarks/benchmark_crc32.cc b/test/benchmarks/benchmark_crc32.cc index df7eaec3e6..b30b1855fa 100644 --- a/test/benchmarks/benchmark_crc32.cc +++ b/test/benchmarks/benchmark_crc32.cc @@ -41,10 +41,10 @@ public: misalign = 0; else misalign += (DO_ALIGNED) ? 16 : 1; - } - // Prevent the result from being optimized away - benchmark::DoNotOptimize(hash); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(hash); + } } void TearDown(const ::benchmark::State&) { diff --git a/test/benchmarks/benchmark_crc32_copy.cc b/test/benchmarks/benchmark_crc32_copy.cc index aa5c3f9e2c..2d054dba49 100644 --- a/test/benchmarks/benchmark_crc32_copy.cc +++ b/test/benchmarks/benchmark_crc32_copy.cc @@ -45,10 +45,10 @@ public: misalign = 0; else misalign += (DO_ALIGNED) ? 16 : 1; - } - // Prevent the result from being optimized away - benchmark::DoNotOptimize(hash); + // Prevent the result from being optimized away + benchmark::DoNotOptimize(hash); + } } void TearDown(const ::benchmark::State&) { |
