From 5efd9599e0b50d3590c42b93f883eea1de41e0bf Mon Sep 17 00:00:00 2001 From: Kaspar Schleiser Date: Mon, 19 Feb 2018 22:46:25 +0100 Subject: [PATCH] sys/benchmark: remove BENCHMARK_SETUP() --- sys/include/benchmark.h | 29 +++++++++++------------------ tests/periph_gpio/main.c | 1 - 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/sys/include/benchmark.h b/sys/include/benchmark.h index 9a321a3d4d5e..47beefa90605 100644 --- a/sys/include/benchmark.h +++ b/sys/include/benchmark.h @@ -29,13 +29,6 @@ extern "C" { #endif -/** - * @brief Prepare the current scope for running BENCHMARK_x() macros - */ -#define BENCHMARK_SETUP() \ - unsigned state; \ - unsigned time - /** * @brief Measure the runtime of a given function call * @@ -43,21 +36,21 @@ extern "C" { * using a preprocessor function, as going with a function pointer or similar * would influence the measured runtime... * - * @note BENCHMARK_SETUP() needs to be called in the same scope - * * @param[in] name name for labeling the output * @param[in] runs number of times to run @p func * @param[in] func function call to benchmark */ -#define BENCHMARK_FUNC(name, runs, func) \ - state = irq_disable(); \ - time = xtimer_now_usec(); \ - for (unsigned long i = 0; i < runs; i++) { \ - func; \ - } \ - time = (xtimer_now_usec() - time); \ - irq_restore(state); \ - benchmark_print_time(time, runs, name) +#define BENCHMARK_FUNC(name, runs, func) \ + { \ + unsigned _benchmark_irqstate = irq_disable(); \ + uint32_t _benchmark_time = xtimer_now_usec(); \ + for (unsigned long i = 0; i < runs; i++) { \ + func; \ + } \ + _benchmark_time = (xtimer_now_usec() - _benchmark_time);\ + irq_restore(_benchmark_irqstate); \ + benchmark_print_time(_benchmark_time, runs, name); \ + } /** * @brief Output the given time as well as the time per run on STDIO diff --git a/tests/periph_gpio/main.c b/tests/periph_gpio/main.c index f383f24b2be5..56bfd33b831f 100644 --- a/tests/periph_gpio/main.c +++ b/tests/periph_gpio/main.c @@ -221,7 +221,6 @@ static int bench(int argc, char **argv) } puts("\nGPIO driver run-time performance benchmark\n"); - BENCHMARK_SETUP(); BENCHMARK_FUNC("nop loop", runs, __asm__ volatile("nop")); BENCHMARK_FUNC("gpio_set", runs, gpio_set(pin)); BENCHMARK_FUNC("gpio_clear", runs, gpio_clear(pin));