mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
benchtests: Add new directive for benchmark initialization hook
Add a new 'init' directive that specifies the name of the function to call to do function-specific initialization. This is useful for benchmarks that need to do a one-time initialization before the functions are executed.
This commit is contained in:
parent
75f11331f9
commit
15eaf6ffe3
@ -1,3 +1,11 @@
|
|||||||
|
2014-05-26 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
|
||||||
|
* benchtests/README: Document 'init' directive.
|
||||||
|
* benchtests/bench-skeleton.c (main) [BENCH_INIT]: Call
|
||||||
|
BENCH_INIT.
|
||||||
|
* scripts/bench.py (gen_source): Define BENCH_INIT macro.
|
||||||
|
(parse_file): Recognize 'init' directive.
|
||||||
|
|
||||||
2014-05-26 Kyle McMartin <kyle@redhat.com>
|
2014-05-26 Kyle McMartin <kyle@redhat.com>
|
||||||
|
|
||||||
[BZ #16796]
|
[BZ #16796]
|
||||||
|
@ -62,6 +62,7 @@ one to add `foo' to the bench tests:
|
|||||||
and functions (specifically, this includes using "#include "source").
|
and functions (specifically, this includes using "#include "source").
|
||||||
See pthread_once-inputs and pthreads_once-source.c for an example of how
|
See pthread_once-inputs and pthreads_once-source.c for an example of how
|
||||||
to use this to benchmark a function that needs state across several calls.
|
to use this to benchmark a function that needs state across several calls.
|
||||||
|
- init: Name of an initializer function to call to initialize the benchtest.
|
||||||
- name: See following section for instructions on how to use this directive.
|
- name: See following section for instructions on how to use this directive.
|
||||||
|
|
||||||
Lines beginning with a single hash '#' are treated as comments. See
|
Lines beginning with a single hash '#' are treated as comments. See
|
||||||
|
@ -62,6 +62,9 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
unsigned long iters, res;
|
unsigned long iters, res;
|
||||||
|
|
||||||
|
#ifdef BENCH_INIT
|
||||||
|
BENCH_INIT ();
|
||||||
|
#endif
|
||||||
TIMING_INIT (res);
|
TIMING_INIT (res);
|
||||||
|
|
||||||
iters = 1000 * res;
|
iters = 1000 * res;
|
||||||
|
@ -128,6 +128,10 @@ def gen_source(func, directives, all_vals):
|
|||||||
else:
|
else:
|
||||||
getret = ''
|
getret = ''
|
||||||
|
|
||||||
|
# Test initialization.
|
||||||
|
if directives['init']:
|
||||||
|
print('#define BENCH_INIT %s' % directives['init'])
|
||||||
|
|
||||||
print(EPILOGUE % {'getret': getret, 'func': func})
|
print(EPILOGUE % {'getret': getret, 'func': func})
|
||||||
|
|
||||||
|
|
||||||
@ -232,7 +236,8 @@ def parse_file(func):
|
|||||||
'args': [],
|
'args': [],
|
||||||
'includes': [],
|
'includes': [],
|
||||||
'include-sources': [],
|
'include-sources': [],
|
||||||
'ret': ''
|
'ret': '',
|
||||||
|
'init': ''
|
||||||
}
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user