diff --git a/test/microbench/Makefile b/test/microbench/Makefile index 37ef0d4b819773b23da9000852e0f334fb88618d..eeef939607372ed386aea23cc455c864b5d94834 100644 --- a/test/microbench/Makefile +++ b/test/microbench/Makefile @@ -74,9 +74,9 @@ ifeq ($(ARCH),loongarch64) product := $$(cat /sys/class/dmi/id/product_name | cut -d ' ' -f1) endif -ifneq ($(wildcard benchmark/test/$(TEST_BIN).cc),) - ifeq ($(shell grep "define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)" benchmark/test/$(TEST_BIN).cc),) - dummy := $(shell sed -i -e "s/define OPTIMIZE_LEVEL.*/define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)/g" benchmark/test/$(TEST_BIN).cc) +ifneq ($(wildcard benchmark/test/microbench.h),) + ifeq ($(shell grep "define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)" benchmark/test/microbench.h),) + dummy := $(shell sed -i -e "s/define OPTIMIZE_LEVEL.*/define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)/g" benchmark/test/microbench.h) endif endif @@ -142,7 +142,7 @@ benchmark/build/test/$(TEST_BIN): benchmark/build/third_party/googletest/src ben cd benchmark && cmake $(CMAKE_FLAGS) -S . -B "build" cd benchmark && cmake --build "build" --config Release --target $(TEST_BIN) -benchmark/test/$(TEST_BIN).dep: benchmark/test/$(TEST_BIN).cc benchmark/test/common.cc +benchmark/test/$(TEST_BIN).dep: benchmark/test/$(TEST_BIN).cc benchmark/test/common.cc benchmark/test/microbench.h cd benchmark && \ git checkout -- $(BENCHMARK_CMAKELIST) && \ sed -i -e "/compile_benchmark_test(basic_test)/icompile_benchmark_test($(TEST_BIN))" $(BENCHMARK_CMAKELIST) && \ @@ -151,12 +151,15 @@ benchmark/test/$(TEST_BIN).dep: benchmark/test/$(TEST_BIN).cc benchmark/test/com benchmark/test/$(TEST_BIN).cc: test/$(TEST_BIN).cc cd benchmark/test && cp ../../test/$(TEST_BIN).cc $(TEST_BIN).cc - grep "define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)" benchmark/test/$(TEST_BIN).cc || \ - sed -i -e "s/define OPTIMIZE_LEVEL.*/define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)/g" $@ benchmark/test/common.cc: test/common.cc cd benchmark/test && cp ../../test/common.cc common.cc +benchmark/test/microbench.h: test/microbench.h + cd benchmark/test && cp ../../test/microbench.h microbench.h + grep "define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)" $@ || \ + sed -i -e "s/define OPTIMIZE_LEVEL.*/define OPTIMIZE_LEVEL $(OPTIMIZE_LEVEL)/g" $@ + benchmark/src: git clone $(BENCHMARK_MIRROR) diff --git a/test/microbench/test/aarch64.cc b/test/microbench/test/aarch64.cc index cfc0afdc787b7929b05585efe3db329e0e5d648f..80920dedc2252e58787e9546090fdb5bb8895385 100644 --- a/test/microbench/test/aarch64.cc +++ b/test/microbench/test/aarch64.cc @@ -6,15 +6,7 @@ // X86_64 ISA: https://www.aldeid.com/wiki/X86-assembly/Instructions -#include "benchmark/benchmark.h" - -#define OPTIMIZE_LEVEL 1 - -#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) -#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()); -#else -#define benchmark_DoNotOptimize() do { } while(0) -#endif +#include "mirobench.h" volatile int enabled; diff --git a/test/microbench/test/armv7l.cc b/test/microbench/test/armv7l.cc index 48fd23bb6bdfa7a889a01f012f79d28a08dc97f2..ffd2fd99cbd1c24d9ec8397998d56a0cefa4191c 100644 --- a/test/microbench/test/armv7l.cc +++ b/test/microbench/test/armv7l.cc @@ -6,15 +6,7 @@ // X86_64 ISA: https://www.aldeid.com/wiki/X86-assembly/Instructions -#include "benchmark/benchmark.h" - -#define OPTIMIZE_LEVEL 1 - -#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) -#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()); -#else -#define benchmark_DoNotOptimize() do { } while(0) -#endif +#include "mirobench.h" volatile int enabled; diff --git a/test/microbench/test/loongarch64.cc b/test/microbench/test/loongarch64.cc index 186ea27a33b139dee28283c6e5a8ddaf9188f7eb..f388ab2140d997414fb65af07098a142ac450282 100644 --- a/test/microbench/test/loongarch64.cc +++ b/test/microbench/test/loongarch64.cc @@ -7,15 +7,7 @@ // X86_64 ISA: https://www.aldeid.com/wiki/X86-assembly/Instructions -#include "benchmark/benchmark.h" - -#define OPTIMIZE_LEVEL 1 - -#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) -#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()); -#else -#define benchmark_DoNotOptimize() do { } while(0) -#endif +#include "microbench.h" volatile int enabled; diff --git a/test/microbench/test/microbench.h b/test/microbench/test/microbench.h new file mode 100644 index 0000000000000000000000000000000000000000..512f0cd3af4dfc024fbccfb16997c6cc0653d7ae --- /dev/null +++ b/test/microbench/test/microbench.h @@ -0,0 +1,10 @@ +#include "benchmark/benchmark.h" +#define OPTIMIZE_LEVEL 1 + +#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) +#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()) +#define benchmark_DoNotOptimize_Arg(x) benchmark::DoNotOptimize(x) +#else +#define benchmark_DoNotOptimize() do { } while(0) +#define benchmark_DoNotOptimize_Arg(x) do { (void)x; } while(0) +#endif diff --git a/test/microbench/test/mips64.cc b/test/microbench/test/mips64.cc index c1075e6f076b5b948a1951772a88057bed86bc48..4e06b6e25dc794163e19903b2b9a1c1028e42f5c 100644 --- a/test/microbench/test/mips64.cc +++ b/test/microbench/test/mips64.cc @@ -7,15 +7,7 @@ // X86_64 ISA: https://www.aldeid.com/wiki/X86-assembly/Instructions -#include "benchmark/benchmark.h" - -#define OPTIMIZE_LEVEL 1 - -#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) -#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()); -#else -#define benchmark_DoNotOptimize() do { } while(0) -#endif +#include "microbench.h" volatile int enabled; diff --git a/test/microbench/test/riscv64.cc b/test/microbench/test/riscv64.cc index 53ba4bde765dedd53518f433cfcb62d85f54861c..f14df11468c8fb2c9a1a116260434b3e29d2d2e1 100644 --- a/test/microbench/test/riscv64.cc +++ b/test/microbench/test/riscv64.cc @@ -6,15 +6,7 @@ // X86_64 ISA: https://www.aldeid.com/wiki/X86-assembly/Instructions -#include "benchmark/benchmark.h" - -#define OPTIMIZE_LEVEL 1 - -#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) -#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()); -#else -#define benchmark_DoNotOptimize() do { } while(0) -#endif +#include "microbench.h" volatile int enabled; diff --git a/test/microbench/test/x86_64.cc b/test/microbench/test/x86_64.cc index 6441b6ebf8c49367ce37956b77f8814ff46c642f..877ef44831194d71ad8309213c1db90d9cfeb629 100644 --- a/test/microbench/test/x86_64.cc +++ b/test/microbench/test/x86_64.cc @@ -6,15 +6,7 @@ // X86_64 ISA: https://www.aldeid.com/wiki/X86-assembly/Instructions -#include "benchmark/benchmark.h" - -#define OPTIMIZE_LEVEL 1 - -#if defined(OPTIMIZE_LEVEL) && (OPTIMIZE_LEVEL == 0) -#define benchmark_DoNotOptimize() benchmark::DoNotOptimize(state.iterations()); -#else -#define benchmark_DoNotOptimize() do { } while(0) -#endif +#include "microbench.h" volatile int enabled;