benchtests: Rename argument to TIMING_INIT macro.
authorWill Newton <will.newton@linaro.org>
Wed, 11 Sep 2013 12:07:33 +0000 (13:07 +0100)
committerWill Newton <will.newton@linaro.org>
Wed, 11 Sep 2013 14:18:20 +0000 (15:18 +0100)
The TIMING_INIT macro currently sets the number of loop iterations
to 1000, which limits usefulness. Make the argument a clock
resolution value and multiply by 1000 in bench-skeleton.c instead
to allow easier reuse.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

* benchtests/bench-timing.h (TIMING_INIT): Rename ITERS
parameter to RES. Remove hardcoded 1000 value.
* benchtests/bench-skeleton.c (main): Pass RES parameter
to TIMING_INIT and multiply result by 1000.

ChangeLog
benchtests/bench-skeleton.c
benchtests/bench-timing.h

index a3f6ba7..6a54979 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-09-11  Will Newton  <will.newton@linaro.org>
+
+       * benchtests/bench-timing.h (TIMING_INIT): Rename ITERS
+       parameter to RES. Remove hardcoded 1000 value.
+       * benchtests/bench-skeleton.c (main): Pass RES parameter
+       to TIMING_INIT and multiply result by 1000.
+
 2013-09-10  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
        * sysdeps/powerpc/fpu/libm-test-ulps: Update.
index 4e3a507..05edc69 100644 (file)
@@ -53,9 +53,11 @@ main (int argc, char **argv)
 
   memset (&runtime, 0, sizeof (runtime));
 
-  unsigned long iters;
+  unsigned long iters, res;
 
-  TIMING_INIT (iters);
+  TIMING_INIT (res);
+
+  iters = 1000 * res;
 
   for (int v = 0; v < NUM_VARIANTS; v++)
     {
index 009813b..48a8521 100644 (file)
 hp_timing_t _dl_hp_timing_overhead;
 typedef hp_timing_t timing_t;
 
-# define TIMING_INIT(iters) \
+# define TIMING_INIT(res) \
 ({                                                                           \
   HP_TIMING_DIFF_INIT();                                                     \
-  (iters) = 1000;                                                            \
+  (res) = 1;                                                         \
 })
 
 # define TIMING_NOW(var) HP_TIMING_NOW (var)
@@ -43,15 +43,13 @@ typedef hp_timing_t timing_t;
 #else
 typedef uint64_t timing_t;
 
-/* Measure 1000 times the resolution of the clock.  So for a 1ns
-   resolution  clock, we measure 1000 iterations of the function call at a
-   time.  Measurements close to the minimum clock resolution won't make
-   much sense, but it's better than having nothing at all.  */
-# define TIMING_INIT(iters) \
+/* Measure the resolution of the clock so we can scale the number of
+   benchmark iterations by this value.  */
+# define TIMING_INIT(res) \
 ({                                                                           \
   struct timespec start;                                                     \
   clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start);                           \
-  (iters) = 1000 * start.tv_nsec;                                            \
+  (res) = start.tv_nsec;                                             \
 })
 
 # define TIMING_NOW(var) \