Allow adding of arbitrary code to benchmark tests
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Thu, 21 Mar 2013 11:05:48 +0000 (16:35 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Thu, 21 Mar 2013 11:06:04 +0000 (16:36 +0530)
This allows us to define custom functions in C code files and
benchmark scenarios rather than just functions.  The main current use
of this is to separate the slow and fast path benchmarks for math
functions.

ChangeLog
Rules

index 858b9fa..3ffaa38 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-21  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+       * Rules ($(objpfx)bench-%.c): Include code from a C source
+       file.
+
 2013-03-21  Joseph Myers  <joseph@codesourcery.com>
 
        [BZ #15287]
diff --git a/Rules b/Rules
index bc5dacd..02cdb4a 100644 (file)
--- a/Rules
+++ b/Rules
@@ -210,8 +210,12 @@ $(binaries-bench): %: %.o \
        $(+link)
 
 $(objpfx)bench-%.c: %-inputs bench-skeleton.c
+       { if [ -n "$($*-INCLUDE)" ]; then \
+         cat $($*-INCLUDE); \
+       fi; \
        $(..)scripts/bench.pl $(patsubst %-inputs,%,$<) \
-         $($*-ITER) $($*-ARGLIST) $($*-RET) > $@
+         $($*-ITER) $($*-ARGLIST) $($*-RET); } > $@-tmp
+       mv -f $@-tmp $@
 
 \f
 .PHONY: distclean realclean subdir_distclean subdir_realclean \