mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Prevent optimizing out of benchmark function call
Resolves: #15424 The compiler would optimize the benchmark function call out of the loop and call it only once, resulting in blazingly fast times for some benchmarks (notably atan, sin and cos). Mark the inputs as volatile so that the code is forced to read again from the input for each iteration.
This commit is contained in:
parent
13d3b41a36
commit
48a18de1e1
@ -1,3 +1,10 @@
|
||||
2013-05-17 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #15424]
|
||||
* benchtests/bench-modf.c (struct args): Mark arg0 as
|
||||
volatile.
|
||||
* scripts/bench.pl: Mark members of struct args as volatile.
|
||||
|
||||
2013-05-17 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/powerpc/fpu/e_hypot.c (GET_TWO_FLOAT_WORD): Fix test for
|
||||
|
2
NEWS
2
NEWS
@ -17,7 +17,7 @@ Version 2.18
|
||||
15086, 15160, 15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304,
|
||||
15305, 15307, 15309, 15327, 15330, 15335, 15336, 15337, 15342, 15346,
|
||||
15359, 15361, 15366, 15380, 15394, 15395, 15405, 15406, 15409, 15416,
|
||||
15418, 15419, 15423, 15426, 15429, 15442, 15448.
|
||||
15418, 15419, 15423, 15424, 15426, 15429, 15442, 15448.
|
||||
|
||||
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||||
#15078).
|
||||
|
@ -21,7 +21,7 @@ extern double modf (double, double *);
|
||||
|
||||
struct args
|
||||
{
|
||||
double arg0;
|
||||
volatile double arg0;
|
||||
} in[] =
|
||||
{
|
||||
{ 42.42 },
|
||||
|
@ -71,7 +71,7 @@ else {
|
||||
$decl = "$decl,";
|
||||
}
|
||||
|
||||
$arg_struct = "$arg_struct $arg arg$num;";
|
||||
$arg_struct = "$arg_struct volatile $arg arg$num;";
|
||||
$bench_func = "$bench_func variants[v].in[i].arg$num";
|
||||
$decl = "$decl $arg";
|
||||
$num = $num + 1;
|
||||
|
Loading…
Reference in New Issue
Block a user