From: Julian Seward Date: Wed, 28 Dec 2005 04:18:20 +0000 (+0000) Subject: In fbench, compute sin/cos/sqrt from "first principles", so that the X-Git-Tag: svn/VALGRIND_3_2_0~437 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16d5a1e2ba152325f6e226c3ccc2e86bf7268ddf;p=thirdparty%2Fvalgrind.git In fbench, compute sin/cos/sqrt from "first principles", so that the program more uniformly measures the speed of FP +/-/* load/store across different architectures. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5455 --- diff --git a/perf/Makefile.am b/perf/Makefile.am index de0384b771..ba8d3225d4 100644 --- a/perf/Makefile.am +++ b/perf/Makefile.am @@ -21,6 +21,6 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir)/include AM_CXXFLAGS = $(AM_CFLAGS) # Extra stuff -fbench_LDADD = -lm +fbench_CFLAGS = -g -O2 +fbench_LDADD = ffbench_LDADD = -lm - diff --git a/perf/fbench.c b/perf/fbench.c index 83e573fe33..79bbb3ec5e 100644 --- a/perf/fbench.c +++ b/perf/fbench.c @@ -8,6 +8,16 @@ // site is in the public domain and may be used in any manner without // permission, restriction, attribution, or compensation." +/* This program can be used in two ways. If INTRIG is undefined, sin, + cos, tan, etc, will be used as supplied by . If it is + defined, then the program calculates all this stuff from first + principles (so to speak) and does not use the libc facilities. For + benchmarking purposes it seems better to avoid the libc stuff, so + that the inner loops (sin, sqrt) present a workload independent of + libc implementations on different platforms. Hence: */ + +#define INTRIG 1 + /* @@ -238,6 +248,7 @@ */ + #include #include #include @@ -289,7 +300,7 @@ int itercount; /* The iteration counter for the main loop tracing code. */ #ifndef ITERATIONS -#define ITERATIONS /*1000*/ /*500000*/ 125000 +#define ITERATIONS /*1000*/ /*500000*/ 80000 #endif int niter = ITERATIONS; /* Iteration counter */