1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00

benchtests: Add include-sources directive.

This adds the "include-sources" directive to scripts/bench.pl.  This
allows for including source code (vs including headers, which might get
a different search path) after the inclusion of any headers.
This commit is contained in:
Torvald Riegel
2013-10-08 14:04:10 +03:00
parent dcc2dd3f46
commit 40fefba1b5
3 changed files with 28 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2013-10-10 Torvald Riegel <triegel@redhat.com>
* scripts/bench.pl: Add include-sources directive.
* benchtests/README: Update documentation.
2013-10-10 Joseph Myers <joseph@codesourcery.com> 2013-10-10 Joseph Myers <joseph@codesourcery.com>
* soft-fp/soft-fp.h (FP_INIT_EXCEPTIONS): New macro. * soft-fp/soft-fp.h (FP_INIT_EXCEPTIONS): New macro.

View File

@ -51,9 +51,12 @@ one to add `foo' to the bench tests:
inputs. inputs.
- ret: This should be assigned the type that the function returns. This - ret: This should be assigned the type that the function returns. This
directive may be skipped if the function does not return a value. directive may be skipped if the function does not return a value.
- includes: This should be assigned a comma separated list of headers that - includes: This should be assigned a comma-separated list of headers that
need to be included to provide declarations for the function and types it need to be included to provide declarations for the function and types it
may need. may need (specifically, this includes using "#include <header>").
- include-sources: This should be assigned a comma-separated list of source
files that need to be included to provide definitions of global variables
and functions (specifically, this includes using "#include "source").
- 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

View File

@ -34,7 +34,8 @@ my $getret = "";
my $variant = ""; my $variant = "";
my @curvals; my @curvals;
my %vals; my %vals;
my @include_files; my @include_headers;
my @include_sources;
my $incl; my $incl;
open INPUTS, "<$func-inputs" or die $!; open INPUTS, "<$func-inputs" or die $!;
@ -43,7 +44,7 @@ LINE:while (<INPUTS>) {
chomp; chomp;
# Directives. # Directives.
if (/^## (\w+): (.*)/) { if (/^## ([\w-]+): (.*)/) {
# Function argument types. # Function argument types.
if ($1 eq "args") { if ($1 eq "args") {
@args = split(":", $2); @args = split(":", $2);
@ -55,7 +56,11 @@ LINE:while (<INPUTS>) {
} }
elsif ($1 eq "includes") { elsif ($1 eq "includes") {
@include_files = split (",", $2); @include_headers = split (",", $2);
}
elsif ($1 eq "include-sources") {
@include_sources = split (",", $2);
} }
# New variant. This is the only directive allowed in the body of the # New variant. This is the only directive allowed in the body of the
@ -72,6 +77,10 @@ LINE:while (<INPUTS>) {
undef @curvals; undef @curvals;
next LINE; next LINE;
} }
else {
die "Unknown directive: ".$1;
}
} }
# Skip over comments. # Skip over comments.
@ -86,10 +95,15 @@ my $bench_func = "#define CALL_BENCH_FUNC(v, i) $func (";
# Print the definitions and macros. # Print the definitions and macros.
foreach $incl (@include_files) { foreach $incl (@include_headers) {
print "#include <" . $incl . ">\n"; print "#include <" . $incl . ">\n";
} }
# Print the source files.
foreach $incl (@include_sources) {
print "#include \"" . $incl . "\"\n";
}
if (@args > 0) { if (@args > 0) {
# Save values in the last variant. # Save values in the last variant.
$vals{$variant} = \@curvals; $vals{$variant} = \@curvals;