RFC: Add HasCallStack constraint to partial Data.List functions.
Oleg Grenrus
oleg.grenrus at iki.fi
Sun May 30 13:52:07 UTC 2021
I'm proposing to add HasCallStack constraint for partial functions
in base package for functions in Data.List and Data.List.NonEmpty:
- head, tail, init, last, ...
- foldr1, foldl1, maximum, minimum, ...
- (!!)
---
The previous discussions started by Luo Chen can be found at
https://gitlab.haskell.org/ghc/ghc/-/issues/17040 (from August 2019)
and libraries list from June 2019
https://mail.haskell.org/pipermail/libraries/2019-June/029652.html
---
My motivation comes from seeing GHCJS failing with
"Prelude.!! negative index" exception and
cabal-install with head of empty list.
---
In #17040 issue Ben Gamari comments [1]
> In general, adding HasCallStack constraints on things like simple
> non-recursive functions like fromJust and head seems like a reasonable
> trade-off; these functions will essentially always inline and
> consequently the cost of the constraint will vanish.
Such patch is now available at
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833
After accepting few changed test outputs, no further changes were needed.
---
Ben continues:
> Adding HasCallStack constraints on typeclass-overloaded methods isn't
> as clear. After all, it's quite likely that these functions will be
> reached by dynamic dispatch which will become more expensive with the
> additional callstack argument.
I agree. Foldable.foldr1 may not be partial, e.g. it isn't for NonEmpty.
More correct approach would be to add Foldable1 [2] class to base, and
in some distant future remove potentially partial members from Foldable.
Therefore my patch _does not change_ Foldable.
> nofib may not be a very good test for this patch as it doesn't contain
> many uses of the affected functions
Indeed. These functions are hardly ever in tight performance critical
code, thus I'm skeptical about they affecting a code written by
performance aware people. Re-implementing `head` in a loop where it
causes performance regression is trivial.
I have run `nofib` anyway. Results are at the end.
> I think it would be a good idea to start with a minimal patch adding
> constraints to the simple cases. We should then verify that the patch
> doesn't affect the Core produced by typical use-cases (perhaps even
> adding tests such that these don't regress). Once we know that the
> simple cases are safe we can move on to the harder cases.
Such patch is now available at
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833
---
Let me go through other comments in previous discussions, to have fuller
overview.
---
Some people are in favour, e.g.
- Simon Jakobi,
https://mail.haskell.org/pipermail/libraries/2019-June/029655.html
- Hécate, https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_355561
---
Richard [3] thinks that e.g. a year prior addition of HasCallStack to
fromJust
[4] is not a right thing.
> I don't have any particular insight to how to do call stacks better --
> and I am swayed by the argument that we need call stacks even in
> production -- but I don't think HasCallStack is the way. That was
> always meant as just a small hack!
This patch is indeed more pragmatic than elegant, but takes us from
takes us from spending potentially many hours finding the source of a
crash to being pointed at the very line where it happens directly, which
is invaluable for production systems. I.e. let not (unknown) perfect be
an enemy of good solution.
---
In fromJust issue discussion [4] Ben comments
> However, I should emphasize to that we don't want to simply scatter
> HasCallStacks on every partial function. We should be thoughtful and
> deliberate (and probably consult with the CLC) when making changes
> like this.
This email is indeed a request for CLC to comment.
---
Edward Kmett comments was in favour [5]
> I’m starting to warm to the idea of putting HasCallStack constraints
> on the obviously partial combinators in base if we can demonstrate
> that the performance impact isn't bad in practice, and even really, to
> some extent if there is a somewhat middling impact on the performance
> of code that leans on these hard to debug combinators, so long as the
> performance of their more total siblings remains unaffected. The
> impact on the perceived debuggability of Haskell seems _likely_ to
> significantly outweigh the performance concerns.
The results (to follow) shows that impact isn't bad.
> Heck, off of the HEAD of cabal, which we’re encouraging folks to build
> to play with the ghc 8.8.1 alpha, just today we ran into an issue
> where the very build system we are using spat out an oh so informative
> “Prelude.foldr1: Empty list” when using a pkgconfig-depends stanza
> that didnt include any explicit bounds.
---
David Feuer is worried about performance of recursive functions [6]
> As I recall, the main things to watch out for, performance-wise, are
> recursive definitions. When we throw an error from a library function,
> we *typically* mean that the caller made a mistake. We don't want to
> build up the call stacks we'd need to debug the library function
> itself, unless we're actually doing so (in which case we can edit it
> in, of course).
In current base implementation all recursive functions (like foldr1, or
!!) have internal workers, so the callstack is not building-up.
Eric Seidel comments later [8]
> What I remember finding back then was that there was a small overhead
> for non-recursive functions like `head` but a substantial overhead for
> recursive functions.
> I'd suggest extra care around recursive functions ((!!) comes to
> mind). Perhaps rewrite them to use an inner recursive loop that does
> not extend the CallStack (this might produce nicer stacktraces
> anyway).
That is how (!!) is currently written in base. It has an inner worker.
(His benchmark link is not valid anymore, so I cannot tell what !!
variant he benchmarked).
---
Matthew Pickering comments [7] about -xc RTS flag.
> I find this thread a bit concerning. In my opinion the current best
> way to get call stacks on exceptions is with `-xc`. Adding runtime
> overhead to every user program is not acceptable.
-xc requires recompiling the program for profiling.
He continues with
> There is an argument that it would be good to disentangle `-xc` from
> `prof` but you would still have to compile `base` in this way which
> instruments these partial functions (as a user can not do it herself).
> I'm not too sure on the details but I don't think -xc uses any
> information from the profiling header so the fact it's connected with
> -prof seems more like convenience than necessity.
If that work is done, we can drop HasCallStack from partial functions,
until then again let not perfect be the enemy of good.
For example, me seeing GHCJS throwing on !!, of Edward cabal-install on
foldr1 doesn't help. Rebuilding cabal-install with profiling is viable
(but not for an average person who downloads it with ghcup),
rebuilding GHCJS for profiling is a skill few people have.
Already in his original proposal Luo Chen says:
> When we run a long running program, such as a web service, it is not
> easy to reproduce the issue, most of the time, you have no chance to
> recompile or restart your program to debug, all you can rely on is the
> printed logs, this makes -xc not as useful as HasCallStack.
---
People are worried about performance.
GHC itself uses some of the a affected functions.
There are 30 foldr1, some head and tail calls, and also !! in `compiler/`
The performance metrics in MR do not regress.
GHC is not slowed down.
I also run `nofib` using `--cachegrind -s Norm -j 16`, geometric means:
- allocations: -0.12%
- instructions: +0.05%
- LLC cache misses: +0.58%
- L1 cache misses: +0.03%
And also using `--perf` (without `-j`):
- perf instructions: +0.02%
- perf cycles: -0.80%
I don't know if this in bounds of "small changes to GHC".
For me this looks acceptable.
---
There is also off-thread blog post from 2018.
https://neilmitchell.blogspot.com/2018/03/safe-library-with-better-stack-traces.html
referencing e.g.
https://hackage.haskell.org/package/extra-1.7.9/docs/Data-List-Extra.html#v:maximumOn
and https://hackage.haskell.org/package/safe
safe library has plenty of reverse dependencies:
https://packdeps.haskellers.com/reverse/safe, and extra is used by shake.
---
In summary:
- fromJust has HasCallStack, head doesn't. Let us fix this.
- Ben asked for patch so we can test performance, now such patch exists,
and it passes GHC CI.
- GHC itself uses partial functions, its performance metrics don't
regress
- -prof and +RTS -xc is an option, but it needs special build of an
executable.
- This is ultimately for CLC to decide, so chessai, emilypi please tell
your opinion.
Discussion period one month, until 2021-06-30 (end of June this year).
Oleg
[1]: https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_231634
[2]: https://mail.haskell.org/pipermail/libraries/2019-November/030059.html
https://gitlab.haskell.org/ghc/ghc/-/issues/13573
[3]: https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_218035
[4]: https://gitlab.haskell.org/ghc/ghc/-/issues/15559
[5]: https://mail.haskell.org/pipermail/libraries/2019-June/029665.html
[6]: https://mail.haskell.org/pipermail/libraries/2019-June/029666.html
[7]: https://mail.haskell.org/pipermail/libraries/2019-June/029672.html
[8]: https://mail.haskell.org/pipermail/libraries/2019-June/029667.html
---
# bytes allocated
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 2.823e9 | 0.00% |
| imaginary/digits-of-e1 || | 1.069e9 | 0.00% |
| imaginary/digits-of-e2 || | 2.152e9 | 0.00% |
| imaginary/exp3_8 || | 5.888e9 | 0.00% |
| imaginary/gen_regexps || | 9.104e8 | 0.00% |
| imaginary/integrate || | 3.768e9 | 0.00% |
| imaginary/kahan || | 49088.000 | 0.00% |
| imaginary/paraffins || | 3.829e9 | 0.00% |
| imaginary/primes || | 2.928e9 | 0.00% |
| imaginary/queens || | 6.709e8 | 0.00% |
| imaginary/rfib || | 139952.000 | 0.00% |
| imaginary/tak || | 97344.000 | 0.00% |
| imaginary/wheel-sieve1 || | 1.344e8 | 0.00% |
| imaginary/wheel-sieve2 || | 2.430e9 | 0.00% |
| imaginary/x2n1 || | 2.561e8 | 0.00% |
| parallel/blackscholes || | 1.980e9 | 0.00% |
| parallel/coins || | 5.252e9 | 0.00% |
| parallel/gray || | 2.010e9 | +0.00% |
| parallel/mandel || | 8.524e9 | 0.00% |
| parallel/matmult || | 8.974e7 | 0.00% |
| parallel/minimax || | 2.212e10 | 0.00% |
| parallel/nbody || | 1498304.000 | 0.00% |
| parallel/parfib || | 3.651e8 | 0.00% |
| parallel/partree || | 3.290e9 | 0.00% |
| parallel/prsa || | 2.097e9 | 0.00% |
| parallel/queens || | 6.846e8 | 0.00% |
| parallel/ray || | 1.357e10 | 0.00% |
| parallel/sumeuler || | 1785016.000 | 0.00% |
| parallel/transclos || | 8.976e9 | 0.00% |
| real/anna || | 2.022e9 | +0.01% |
| real/ben-raytrace || | 3.418e10 | 0.00% |
| real/bspt || | 3.747e9 | 0.00% |
| real/cacheprof || | 2.689e9 | 0.00% |
| real/compress || | 2.807e9 | 0.00% |
| real/compress2 || | 3.436e9 | 0.00% |
| real/eff/CS || | 1.601e8 | 0.00% |
| real/eff/CSD || | 1.600e9 | 0.00% |
| real/eff/FS || | 1.760e9 | 0.00% |
| real/eff/S || | 2.401e8 | 0.00% |
| real/eff/VS || | 4.831e8 | 0.00% |
| real/eff/VSD || | 50736.000 | 0.00% |
| real/eff/VSM || | 4.001e8 | 0.00% |
| real/fem || | 4.947e9 | -2.81% |
| real/fluid || | 2.169e9 | -0.00% |
| real/fulsom || | 1.961e9 | 0.00% |
| real/gamteb || | 4.447e9 | 0.00% |
| real/gg || | 2.654e9 | 0.00% |
| real/grep || | 4.623e9 | 0.00% |
| real/hidden || | 5.100e9 | 0.00% |
| real/hpg || | 3.160e9 | -0.10% |
| real/infer || | 1.731e9 | 0.00% |
| real/lift || | 2.761e9 | 0.00% |
| real/linear || | 5.412e9 | -0.07% |
| real/maillist || | 3.331e9 | 0.00% |
| real/mkhprog || | 9748392.000 | 0.00% |
| real/parser || | 2.666e9 | 0.00% |
| real/pic || | 1.469e9 | 0.00% |
| real/prolog || | 2.922e9 | -0.02% |
| real/reptile || | 5.121e9 | 0.00% |
| real/rsa || | 8.414e8 | 0.00% |
| real/scs || | 4.044e9 | 0.00% |
| real/smallpt || | 2.874e9 | 0.00% |
| real/symalg || | 3.195e8 | 0.00% |
| real/veritas || | 4.172e9 | 0.00% |
| shootout/binary-trees || | 4.300e9 | 0.00% |
| shootout/fannkuch-redux || | 69144.000 | -0.03% |
| shootout/fasta || | 1.718e9 | +0.00% |
| shootout/k-nucleotide || | 7.081e7 | +0.00% |
| shootout/n-body || | 130608.000 | 0.00% |
| shootout/pidigits || | 1.027e10 | 0.00% |
| shootout/reverse-complement || | 59768.000 | 0.00% |
| shootout/spectral-norm || | 178112.000 | 0.00% |
| smp/callback001 || | 1.114e9 | 0.00% |
| smp/callback002 || | 3.264e9 | 0.00% |
| smp/chan || | 1.240e9 | 0.00% |
| smp/sieve || | 1.410e9 | 0.00% |
| smp/threads001 || | 1.072e10 | 0.00% |
| smp/threads003 || | 3.051e8 | -0.01% |
| smp/threads006 || | 2.242e8 | 0.00% |
| smp/threads007 || | 1.778e9 | -0.00% |
| spectral/ansi || | 6.713e9 | 0.00% |
| spectral/atom || | 3.580e9 | 0.00% |
| spectral/awards || | 4.759e9 | 0.00% |
| spectral/banner || | 6.156e9 | 0.00% |
| spectral/boyer || | 4.665e9 | 0.00% |
| spectral/boyer2 || | 1.153e9 | 0.00% |
| spectral/calendar || | 7.102e9 | 0.00% |
| spectral/cichelli || | 1.969e9 | 0.00% |
| spectral/circsim || | 4.850e9 | 0.00% |
| spectral/clausify || | 2.095e9 | 0.00% |
| spectral/constraints || | 4.872e9 | 0.00% |
| spectral/cryptarithm1 || | 5.981e9 | 0.00% |
| spectral/cryptarithm2 || | 3.663e9 | 0.00% |
| spectral/cse || | 3.802e9 | 0.00% |
| spectral/dom-lt || | 3.890e9 | 0.00% |
| spectral/eliza || | 4.102e9 | +0.00% |
| spectral/exact-reals || | 9.584e8 | -0.00% |
| spectral/expert || | 2.090e9 | 0.00% |
| spectral/fft2 || | 1.431e9 | -0.22% |
| spectral/fibheaps || | 4.737e9 | 0.00% |
| spectral/fish || | 6.193e9 | 0.00% |
| spectral/gcd || | 2.069e9 | 0.00% |
| spectral/hartel/comp_lab_zift || | 4.740e9 | 0.00% |
| spectral/hartel/event || | 3.635e9 | -12.13% |
| spectral/hartel/fft || | 1.611e9 | 0.00% |
| spectral/hartel/genfft || | 8.020e9 | 0.00% |
| spectral/hartel/ida || | 3.515e9 | 0.00% |
| spectral/hartel/listcompr || | 6.157e9 | 0.00% |
| spectral/hartel/listcopy || | 6.758e9 | 0.00% |
| spectral/hartel/nucleic2 || | 2.965e9 | 0.00% |
| spectral/hartel/parstof || | 1.368e9 | 0.00% |
| spectral/hartel/sched || | 3.675e9 | 0.00% |
| spectral/hartel/solid || | 3.509e9 | 0.00% |
| spectral/hartel/transform || | 3.959e9 | 0.00% |
| spectral/hartel/typecheck || | 2.570e9 | 0.00% |
| spectral/hartel/wang || | 4.735e9 | 0.00% |
| spectral/hartel/wave4main || | 1.147e9 | 0.00% |
| spectral/integer || | 3.260e9 | 0.00% |
| spectral/knights || | 1.094e9 | 0.00% |
| spectral/lambda || | 2.950e9 | 0.00% |
| spectral/last-piece || | 6.852e8 | 0.00% |
| spectral/lcss || | 6.565e9 | 0.00% |
| spectral/life || | 6.799e9 | 0.00% |
| spectral/mandel || | 1.972e9 | 0.00% |
| spectral/mandel2 || | 5.231e8 | 0.00% |
| spectral/mate || | 4.598e9 | 0.00% |
| spectral/minimax || | 2.683e9 | 0.00% |
| spectral/multiplier || | 2.850e9 | 0.00% |
| spectral/para || | 4.056e9 | 0.00% |
| spectral/power || | 1.428e9 | 0.00% |
| spectral/pretty || | 136880.000 | -0.11% |
| spectral/primetest || | 8.455e8 | 0.00% |
| spectral/puzzle || | 1.809e9 | 0.00% |
| spectral/rewrite || | 1.694e9 | 0.00% |
| spectral/scc || | 58280.000 | 0.00% |
| spectral/simple || | 2.316e9 | 0.00% |
| spectral/sorting || | 3.078e9 | 0.00% |
| spectral/sphere || | 2.298e9 | 0.00% |
| spectral/treejoin || | 2.796e9 | 0.00% |
+===============================++==+=============+==================+
| geom mean || | -0.12% | |
+-------------------------------++--+-------------+------------------+
# instructions
+-------------------------------++--+------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+============+==================+
| imaginary/bernouilli || | 7.057e9 | +0.00% |
| imaginary/digits-of-e1 || | 5.549e9 | -0.00% |
| imaginary/digits-of-e2 || | 5.555e9 | -0.01% |
| imaginary/exp3_8 || | 8.779e9 | +0.03% |
| imaginary/gen_regexps || | 8.650e9 | -0.00% |
| imaginary/integrate || | 6.276e9 | +0.00% |
| imaginary/kahan || | 6.707e9 | +0.00% |
| imaginary/paraffins || | 8.089e9 | -0.00% |
| imaginary/primes || | 8.278e9 | +0.01% |
| imaginary/queens || | 1.010e10 | -0.00% |
| imaginary/rfib || | 5.299e9 | +0.00% |
| imaginary/tak || | 5.867e9 | +0.00% |
| imaginary/wheel-sieve1 || | 6.615e9 | +0.04% |
| imaginary/wheel-sieve2 || | 6.286e9 | +0.02% |
| imaginary/x2n1 || | 7.452e9 | +0.00% |
| parallel/blackscholes || | 8.022e9 | +0.00% |
| parallel/coins || | 1.149e10 | +0.00% |
| parallel/gray || | 6.141e9 | +0.14% |
| parallel/mandel || | 3.288e10 | -0.01% |
| parallel/matmult || | 1.115e10 | -0.00% |
| parallel/minimax || | 3.863e10 | -0.08% |
| parallel/nbody || | 7.939e8 | +0.00% |
| parallel/parfib || | 2.231e10 | +0.00% |
| parallel/partree || | 7.347e9 | +0.01% |
| parallel/prsa || | 1.811e10 | -0.00% |
| parallel/queens || | 1.037e10 | +0.00% |
| parallel/ray || | 1.299e10 | +0.00% |
| parallel/sumeuler || | 3.483e9 | +0.00% |
| parallel/transclos || | 1.982e10 | +0.00% |
| real/anna || | 5.343e9 | +0.05% |
| real/ben-raytrace || | 1.215e11 | +0.00% |
| real/bspt || | 9.226e9 | -0.00% |
| real/cacheprof || | 6.763e9 | +0.02% |
| real/compress || | 5.820e9 | -0.00% |
| real/compress2 || | 4.569e9 | +0.00% |
| real/eff/CS || | 7.758e8 | +0.00% |
| real/eff/CSD || | 3.745e9 | +0.00% |
| real/eff/FS || | 2.799e9 | +0.00% |
| real/eff/S || | 4.334e9 | +0.00% |
| real/eff/VS || | 2.221e9 | +0.01% |
| real/eff/VSD || | 8.075e7 | +0.00% |
| real/eff/VSM || | 9.635e8 | +0.00% |
| real/fem || | 6.649e9 | -0.64% |
| real/fluid || | 3.904e9 | -0.00% |
| real/fulsom || | 2.490e9 | +0.00% |
| real/gamteb || | 1.013e10 | +0.01% |
| real/gg || | 7.253e9 | +0.01% |
| real/grep || | 7.546e9 | +0.00% |
| real/hidden || | 7.198e9 | +1.64% |
| real/hpg || | 4.966e9 | +0.88% |
| real/infer || | 8.318e9 | +0.00% |
| real/lift || | 4.430e9 | -0.00% |
| real/linear || | 8.436e9 | +1.97% |
| real/maillist || | 1.974e9 | +0.05% |
| real/mkhprog || | 2.249e7 | +0.00% |
| real/parser || | 5.178e9 | -0.00% |
| real/pic || | 3.268e9 | -0.00% |
| real/prolog || | 5.742e9 | +0.01% |
| real/reptile || | 6.046e9 | +0.00% |
| real/rsa || | 7.191e9 | +0.00% |
| real/scs || | 6.174e9 | +0.00% |
| real/smallpt || | 1.128e10 | +0.00% |
| real/symalg || | 8.230e9 | +0.00% |
| real/veritas || | 4.832e9 | -0.01% |
| shootout/binary-trees || | 1.073e10 | +0.01% |
| shootout/fannkuch-redux || | 1.909e10 | -0.00% |
| shootout/fasta || | 4.189e9 | +0.00% |
| shootout/k-nucleotide || | 4.219e9 | +0.01% |
| shootout/n-body || | 3.721e9 | +0.00% |
| shootout/pidigits || | 8.084e9 | +0.00% |
| shootout/reverse-complement || | 781364.000 | +0.51% |
| shootout/spectral-norm || | 4.252e9 | +0.00% |
| smp/callback001 || | 1.573e9 | +0.01% |
| smp/callback002 || | 2.621e9 | +0.00% |
| smp/chan || | 8.718e9 | +2.56% |
| smp/sieve || | 5.538e9 | -0.87% |
| smp/threads001 || | 5.139e9 | -0.00% |
| smp/threads003 || | 2.903e9 | -0.05% |
| smp/threads006 || | 7.402e8 | +0.01% |
| smp/threads007 || | 4.090e9 | -0.00% |
| spectral/ansi || | 5.961e9 | -0.00% |
| spectral/atom || | 5.861e9 | +0.01% |
| spectral/awards || | 8.744e9 | +0.00% |
| spectral/banner || | 8.824e9 | +0.23% |
| spectral/boyer || | 7.657e9 | -0.00% |
| spectral/boyer2 || | 8.881e9 | -0.00% |
| spectral/calendar || | 7.546e9 | -0.00% |
| spectral/cichelli || | 8.625e9 | +0.01% |
| spectral/circsim || | 6.850e9 | +0.00% |
| spectral/clausify || | 6.223e9 | -0.00% |
| spectral/constraints || | 8.314e9 | +0.14% |
| spectral/cryptarithm1 || | 7.787e9 | -0.00% |
| spectral/cryptarithm2 || | 6.761e9 | +0.00% |
| spectral/cse || | 6.358e9 | -0.00% |
| spectral/dom-lt || | 7.774e9 | -0.00% |
| spectral/eliza || | 8.273e9 | +0.00% |
| spectral/exact-reals || | 5.597e9 | +0.01% |
| spectral/expert || | 5.087e9 | +0.04% |
| spectral/fft2 || | 8.831e9 | +0.31% |
| spectral/fibheaps || | 8.011e9 | -0.00% |
| spectral/fish || | 7.314e9 | -0.00% |
| spectral/gcd || | 6.386e9 | -0.00% |
| spectral/hartel/comp_lab_zift || | 8.717e9 | -0.00% |
| spectral/hartel/event || | 9.071e9 | -2.06% |
| spectral/hartel/fft || | 3.239e9 | +0.00% |
| spectral/hartel/genfft || | 1.020e10 | +0.00% |
| spectral/hartel/ida || | 5.413e9 | -0.30% |
| spectral/hartel/listcompr || | 6.142e9 | +0.02% |
| spectral/hartel/listcopy || | 6.757e9 | +0.02% |
| spectral/hartel/nucleic2 || | 4.402e9 | +0.00% |
| spectral/hartel/parstof || | 5.555e9 | -0.00% |
| spectral/hartel/sched || | 5.800e9 | +0.00% |
| spectral/hartel/solid || | 5.845e9 | +0.24% |
| spectral/hartel/transform || | 5.709e9 | -0.00% |
| spectral/hartel/typecheck || | 5.841e9 | +0.00% |
| spectral/hartel/wang || | 8.731e9 | +0.12% |
| spectral/hartel/wave4main || | 6.024e9 | -0.00% |
| spectral/integer || | 7.068e9 | -0.00% |
| spectral/knights || | 8.294e9 | -0.00% |
| spectral/lambda || | 8.081e9 | +0.00% |
| spectral/last-piece || | 1.878e9 | +0.00% |
| spectral/lcss || | 8.761e9 | -0.00% |
| spectral/life || | 9.136e9 | -0.00% |
| spectral/mandel || | 7.037e9 | +0.00% |
| spectral/mandel2 || | 3.957e9 | +0.00% |
| spectral/mate || | 7.565e9 | +0.01% |
| spectral/minimax || | 8.649e9 | -0.00% |
| spectral/multiplier || | 6.096e9 | +0.00% |
| spectral/para || | 6.561e9 | +0.00% |
| spectral/power || | 6.749e9 | -0.00% |
| spectral/pretty || | 851224.000 | +0.17% |
| spectral/primetest || | 7.391e9 | -0.00% |
| spectral/puzzle || | 6.401e9 | +0.00% |
| spectral/rewrite || | 5.553e9 | +0.67% |
| spectral/scc || | 774059.000 | +0.49% |
| spectral/simple || | 1.214e10 | +0.01% |
| spectral/sorting || | 9.074e9 | -0.00% |
| spectral/sphere || | 5.371e9 | -0.00% |
| spectral/treejoin || | 9.768e9 | +0.00% |
+===============================++==+============+==================+
| geom mean || | +0.05% | |
+-------------------------------++--+------------+------------------+
# LLC cache misses
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 4964.000 | +1.37% |
| imaginary/digits-of-e1 || | 4863.000 | -0.35% |
| imaginary/digits-of-e2 || | 4958.000 | +1.63% |
| imaginary/exp3_8 || | 4513.000 | +0.42% |
| imaginary/gen_regexps || | 4535.000 | +0.09% |
| imaginary/integrate || | 4733.000 | +1.08% |
| imaginary/kahan || | 4447.000 | -0.13% |
| imaginary/paraffins || | 4826.000 | -0.08% |
| imaginary/primes || | 4876.000 | +0.94% |
| imaginary/queens || | 4541.000 | -0.07% |
| imaginary/rfib || | 4485.000 | -0.13% |
| imaginary/tak || | 4461.000 | +0.25% |
| imaginary/wheel-sieve1 || | 4865.000 | +1.29% |
| imaginary/wheel-sieve2 || | 4893.000 | +1.25% |
| imaginary/x2n1 || | 4630.000 | +0.22% |
| parallel/blackscholes || | 12862.000 | +0.30% |
| parallel/coins || | 6455583.000 | +0.00% |
| parallel/gray || | 6372.000 | +1.77% |
| parallel/mandel || | 852468.000 | -0.02% |
| parallel/matmult || | 4615.000 | -0.30% |
| parallel/minimax || | 4617.000 | +0.84% |
| parallel/nbody || | 4455.000 | -0.04% |
| parallel/parfib || | 4528.000 | +0.22% |
| parallel/partree || | 4627.000 | +0.43% |
| parallel/prsa || | 4619.000 | +0.54% |
| parallel/queens || | 4528.000 | +1.37% |
| parallel/ray || | 4626.000 | +0.35% |
| parallel/sumeuler || | 4446.000 | +0.13% |
| parallel/transclos || | 4741.000 | -0.17% |
| real/anna || | 6443.000 | +5.34% |
| real/ben-raytrace || | 6819.000 | -0.13% |
| real/bspt || | 5195.000 | -0.21% |
| real/cacheprof || | 6734.000 | +1.62% |
| real/compress || | 4914.000 | +0.53% |
| real/compress2 || | 4783.000 | -0.25% |
| real/eff/CS || | 4439.000 | +0.38% |
| real/eff/CSD || | 4446.000 | 0.00% |
| real/eff/FS || | 4451.000 | -0.04% |
| real/eff/S || | 5619842.000 | -0.00% |
| real/eff/VS || | 1254362.000 | +0.00% |
| real/eff/VSD || | 4403.000 | -0.43% |
| real/eff/VSM || | 4445.000 | -0.11% |
| real/fem || | 4967.000 | +2.07% |
| real/fluid || | 6117.000 | +0.85% |
| real/fulsom || | 5060.000 | -0.10% |
| real/gamteb || | 5615.000 | +0.64% |
| real/gg || | 5242.000 | +0.88% |
| real/grep || | 4866.000 | +0.62% |
| real/hidden || | 5576.000 | +2.06% |
| real/hpg || | 5614.000 | +2.92% |
| real/infer || | 4833.000 | -0.14% |
| real/lift || | 4809.000 | +1.48% |
| real/linear || | 5368.000 | +4.53% |
| real/maillist || | 12942.000 | +0.32% |
| real/mkhprog || | 4483.000 | +0.20% |
| real/parser || | 5309.000 | +1.64% |
| real/pic || | 4937.000 | +0.81% |
| real/prolog || | 4843.000 | +1.03% |
| real/reptile || | 5548.000 | -0.43% |
| real/rsa || | 4667.000 | +0.26% |
| real/scs || | 5667.000 | +1.48% |
| real/smallpt || | 5836.000 | +1.29% |
| real/symalg || | 5422.000 | +0.30% |
| real/veritas || | 6984.000 | +2.61% |
| shootout/binary-trees || | 5079.000 | +0.73% |
| shootout/fannkuch-redux || | 4478.000 | -0.51% |
| shootout/fasta || | 4625.000 | -0.13% |
| shootout/k-nucleotide || | 1161663.000 | -2.58% |
| shootout/n-body || | 4512.000 | +0.04% |
| shootout/pidigits || | 4651.000 | -0.39% |
| shootout/reverse-complement || | 4416.000 | 0.00% |
| shootout/spectral-norm || | 4477.000 | +0.25% |
| smp/callback001 || | 488453.000 | -0.01% |
| smp/callback002 || | 4513.000 | -0.11% |
| smp/chan || | 1.110e7 | +7.03% |
| smp/sieve || | 4555.000 | +0.72% |
| smp/threads001 || | 4481.000 | +0.49% |
| smp/threads003 || | 83898.000 | -1.63% |
| smp/threads006 || | 1804659.000 | +0.49% |
| smp/threads007 || | 2427701.000 | -0.24% |
| spectral/ansi || | 4759.000 | +0.27% |
| spectral/atom || | 4691.000 | +0.62% |
| spectral/awards || | 4717.000 | +1.14% |
| spectral/banner || | 5056.000 | +1.21% |
| spectral/boyer || | 5045.000 | +0.06% |
| spectral/boyer2 || | 4832.000 | -0.04% |
| spectral/calendar || | 4622.000 | +0.74% |
| spectral/cichelli || | 4728.000 | +1.67% |
| spectral/circsim || | 40269.000 | -1.55% |
| spectral/clausify || | 4835.000 | -0.17% |
| spectral/constraints || | 4871.000 | +1.44% |
| spectral/cryptarithm1 || | 4562.000 | +0.18% |
| spectral/cryptarithm2 || | 4600.000 | +0.07% |
| spectral/cse || | 4534.000 | +0.33% |
| spectral/dom-lt || | 5179.000 | +0.10% |
| spectral/eliza || | 4968.000 | +0.34% |
| spectral/exact-reals || | 4840.000 | +1.34% |
| spectral/expert || | 4770.000 | +2.81% |
| spectral/fft2 || | 5296.000 | +1.91% |
| spectral/fibheaps || | 4858.000 | +0.02% |
| spectral/fish || | 4687.000 | +0.04% |
| spectral/gcd || | 4575.000 | +0.22% |
| spectral/hartel/comp_lab_zift || | 4960.000 | +0.58% |
| spectral/hartel/event || | 4875.000 | +0.96% |
| spectral/hartel/fft || | 5121.000 | +0.70% |
| spectral/hartel/genfft || | 4875.000 | +0.04% |
| spectral/hartel/ida || | 4877.000 | +0.84% |
| spectral/hartel/listcompr || | 4651.000 | +1.76% |
| spectral/hartel/listcopy || | 4649.000 | +1.96% |
| spectral/hartel/nucleic2 || | 5998.000 | +0.68% |
| spectral/hartel/parstof || | 5583.000 | -0.05% |
| spectral/hartel/sched || | 4856.000 | -0.23% |
| spectral/hartel/solid || | 5282.000 | +1.21% |
| spectral/hartel/transform || | 4875.000 | +1.56% |
| spectral/hartel/typecheck || | 4724.000 | +0.95% |
| spectral/hartel/wang || | 4993.000 | +2.38% |
| spectral/hartel/wave4main || | 4877.000 | -0.04% |
| spectral/integer || | 4619.000 | -0.13% |
| spectral/knights || | 4694.000 | +0.58% |
| spectral/lambda || | 4984.000 | +0.66% |
| spectral/last-piece || | 4869.000 | -0.21% |
| spectral/lcss || | 4876.000 | +0.04% |
| spectral/life || | 4884.000 | +1.29% |
| spectral/mandel || | 4900.000 | +0.16% |
| spectral/mandel2 || | 4479.000 | -0.13% |
| spectral/mate || | 5086.000 | +1.83% |
| spectral/minimax || | 4605.000 | -0.04% |
| spectral/multiplier || | 4672.000 | +0.98% |
| spectral/para || | 4935.000 | +0.83% |
| spectral/power || | 4918.000 | +0.18% |
| spectral/pretty || | 4432.000 | +0.14% |
| spectral/primetest || | 5021.000 | -0.04% |
| spectral/puzzle || | 4603.000 | +0.04% |
| spectral/rewrite || | 4618.000 | +0.97% |
| spectral/scc || | 4415.000 | +0.34% |
| spectral/simple || | 2413361.000 | -1.18% |
| spectral/sorting || | 5357.000 | -1.55% |
| spectral/sphere || | 5717.000 | +0.84% |
| spectral/treejoin || | 5130.000 | +0.02% |
+===============================++==+=============+==================+
| geom mean || | +0.58% | |
+-------------------------------++--+-------------+------------------+
# L1 cache misses
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 4.235e7 | +0.13% |
| imaginary/digits-of-e1 || | 3708507.000 | -0.06% |
| imaginary/digits-of-e2 || | 2.913e7 | -0.16% |
| imaginary/exp3_8 || | 1.881e8 | -0.07% |
| imaginary/gen_regexps || | 2.915e7 | -0.05% |
| imaginary/integrate || | 1341520.000 | -4.99% |
| imaginary/kahan || | 7577.000 | +0.15% |
| imaginary/paraffins || | 5.994e7 | -0.02% |
| imaginary/primes || | 1.165e8 | -0.01% |
| imaginary/queens || | 315321.000 | -0.94% |
| imaginary/rfib || | 7833.000 | -0.46% |
| imaginary/tak || | 7688.000 | +0.03% |
| imaginary/wheel-sieve1 || | 7508229.000 | +0.51% |
| imaginary/wheel-sieve2 || | 4.338e7 | -0.02% |
| imaginary/x2n1 || | 129793.000 | +0.50% |
| parallel/blackscholes || | 1.550e7 | -0.16% |
| parallel/coins || | 3.952e7 | +0.26% |
| parallel/gray || | 1.736e7 | +1.38% |
| parallel/mandel || | 1.356e7 | +0.20% |
| parallel/matmult || | 5.267e8 | -0.01% |
| parallel/minimax || | 1.140e8 | -0.14% |
| parallel/nbody || | 1.248e7 | -0.02% |
| parallel/parfib || | 252463.000 | +6.49% |
| parallel/partree || | 5.642e7 | +0.08% |
| parallel/prsa || | 5700667.000 | +0.27% |
| parallel/queens || | 3129546.000 | +0.19% |
| parallel/ray || | 1.260e7 | +4.27% |
| parallel/sumeuler || | 35221.000 | -0.07% |
| parallel/transclos || | 1.863e7 | +0.17% |
| real/anna || | 3.737e7 | +0.10% |
| real/ben-raytrace || | 6.695e7 | +0.59% |
| real/bspt || | 1.492e8 | +0.01% |
| real/cacheprof || | 5.661e7 | -0.24% |
| real/compress || | 3.247e7 | -2.71% |
| real/compress2 || | 2.717e7 | +0.13% |
| real/eff/CS || | 54141.000 | -0.28% |
| real/eff/CSD || | 532877.000 | -0.07% |
| real/eff/FS || | 512883.000 | +0.18% |
| real/eff/S || | 1.412e7 | -0.07% |
| real/eff/VS || | 6730192.000 | -0.42% |
| real/eff/VSD || | 7449.000 | -0.30% |
| real/eff/VSM || | 121912.000 | -0.22% |
| real/fem || | 3.841e7 | +6.86% |
| real/fluid || | 1.579e7 | +0.91% |
| real/fulsom || | 1.036e7 | +0.03% |
| real/gamteb || | 3.473e7 | -0.02% |
| real/gg || | 7.439e7 | +0.09% |
| real/grep || | 7.940e7 | +0.08% |
| real/hidden || | 1.074e7 | +0.20% |
| real/hpg || | 1.757e7 | +0.32% |
| real/infer || | 2.006e8 | -0.02% |
| real/lift || | 2.741e7 | +0.20% |
| real/linear || | 8.899e7 | +1.27% |
| real/maillist || | 9646364.000 | -0.06% |
| real/mkhprog || | 11950.000 | +3.72% |
| real/parser || | 1.269e7 | +0.92% |
| real/pic || | 4.450e7 | -0.24% |
| real/prolog || | 2.973e7 | -0.34% |
| real/reptile || | 1.945e7 | -0.07% |
| real/rsa || | 1310283.000 | -0.18% |
| real/scs || | 1.916e7 | +0.06% |
| real/smallpt || | 7088127.000 | +0.47% |
| real/symalg || | 5981494.000 | -0.11% |
| real/veritas || | 1.860e7 | -1.22% |
| shootout/binary-trees || | 3.661e7 | +0.01% |
| shootout/fannkuch-redux || | 7741.000 | -0.62% |
| shootout/fasta || | 5.215e7 | +0.01% |
| shootout/k-nucleotide || | 1.247e7 | +0.01% |
| shootout/n-body || | 8025.000 | +0.04% |
| shootout/pidigits || | 2.316e8 | +0.02% |
| shootout/reverse-complement || | 7627.000 | -0.20% |
| shootout/spectral-norm || | 21764.000 | +0.23% |
| smp/callback001 || | 5824201.000 | +0.07% |
| smp/callback002 || | 8288204.000 | -0.09% |
| smp/chan || | 2.846e7 | +2.62% |
| smp/sieve || | 5.400e7 | -1.10% |
| smp/threads001 || | 2.312e7 | +0.45% |
| smp/threads003 || | 4.773e7 | -0.22% |
| smp/threads006 || | 9331792.000 | +0.02% |
| smp/threads007 || | 2.721e7 | +0.36% |
| spectral/ansi || | 6.940e7 | -0.01% |
| spectral/atom || | 1.248e8 | +0.01% |
| spectral/awards || | 7810137.000 | -1.82% |
| spectral/banner || | 3.727e7 | +2.57% |
| spectral/boyer || | 2.284e7 | -0.19% |
| spectral/boyer2 || | 3.926e7 | -0.63% |
| spectral/calendar || | 7366268.000 | -0.91% |
| spectral/cichelli || | 1.797e7 | +0.02% |
| spectral/circsim || | 9.138e7 | +0.07% |
| spectral/clausify || | 6134801.000 | -0.11% |
| spectral/constraints || | 2.950e7 | +0.38% |
| spectral/cryptarithm1 || | 3139494.000 | +0.08% |
| spectral/cryptarithm2 || | 3481535.000 | +0.35% |
| spectral/cse || | 4798864.000 | -7.01% |
| spectral/dom-lt || | 2.556e7 | -0.11% |
| spectral/eliza || | 1.921e7 | +1.14% |
| spectral/exact-reals || | 2391927.000 | +1.24% |
| spectral/expert || | 2.311e7 | -0.08% |
| spectral/fft2 || | 1.917e8 | +0.81% |
| spectral/fibheaps || | 5.236e7 | -0.06% |
| spectral/fish || | 8017906.000 | +0.13% |
| spectral/gcd || | 1652038.000 | +0.07% |
| spectral/hartel/comp_lab_zift || | 6.167e7 | -0.11% |
| spectral/hartel/event || | 4.857e7 | -2.47% |
| spectral/hartel/fft || | 3.723e7 | -0.04% |
| spectral/hartel/genfft || | 2.201e7 | +1.31% |
| spectral/hartel/ida || | 1.316e7 | +0.16% |
| spectral/hartel/listcompr || | 9143834.000 | +1.54% |
| spectral/hartel/listcopy || | 1.018e7 | +2.27% |
| spectral/hartel/nucleic2 || | 1.035e7 | -2.83% |
| spectral/hartel/parstof || | 2.290e7 | -2.36% |
| spectral/hartel/sched || | 6090930.000 | -0.15% |
| spectral/hartel/solid || | 3.408e7 | +0.00% |
| spectral/hartel/transform || | 2.255e7 | +0.25% |
| spectral/hartel/typecheck || | 1.447e7 | -1.37% |
| spectral/hartel/wang || | 1.089e8 | +0.19% |
| spectral/hartel/wave4main || | 8.229e7 | +0.29% |
| spectral/integer || | 1101168.000 | -0.06% |
| spectral/knights || | 3.424e7 | +0.92% |
| spectral/lambda || | 6.667e7 | +0.14% |
| spectral/last-piece || | 3620219.000 | -0.43% |
| spectral/lcss || | 7.252e7 | -0.26% |
| spectral/life || | 1.231e8 | -0.11% |
| spectral/mandel || | 741678.000 | +0.09% |
| spectral/mandel2 || | 311375.000 | +0.79% |
| spectral/mate || | 4858523.000 | -1.23% |
| spectral/minimax || | 1172869.000 | +0.51% |
| spectral/multiplier || | 1.060e8 | +0.03% |
| spectral/para || | 5.089e7 | +0.15% |
| spectral/power || | 4.488e7 | -0.00% |
| spectral/pretty || | 7649.000 | +0.38% |
| spectral/primetest || | 500918.000 | +1.32% |
| spectral/puzzle || | 3210919.000 | -0.09% |
| spectral/rewrite || | 825290.000 | -7.73% |
| spectral/scc || | 7483.000 | +0.16% |
| spectral/simple || | 8.786e7 | +0.01% |
| spectral/sorting || | 1.261e8 | -0.02% |
| spectral/sphere || | 4854033.000 | +0.43% |
| spectral/treejoin || | 8.455e7 | +0.03% |
+===============================++==+=============+==================+
| geom mean || | +0.03% | |
+-------------------------------++--+-------------+------------------+
# perf instructions
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 7.085e9 | -0.22% |
| imaginary/digits-of-e1 || | 5.547e9 | -0.03% |
| imaginary/digits-of-e2 || | 5.549e9 | -0.06% |
| imaginary/exp3_8 || | 8.785e9 | -0.06% |
| imaginary/gen_regexps || | 8.650e9 | -0.04% |
| imaginary/integrate || | 6.260e9 | +0.20% |
| imaginary/kahan || | 6.699e9 | +0.16% |
| imaginary/paraffins || | 8.112e9 | -0.24% |
| imaginary/primes || | 8.244e9 | -0.24% |
| imaginary/queens || | 1.009e10 | +0.04% |
| imaginary/rfib || | 5.298e9 | +0.14% |
| imaginary/tak || | 5.861e9 | +0.10% |
| imaginary/wheel-sieve1 || | 6.662e9 | -0.76% |
| imaginary/wheel-sieve2 || | 6.278e9 | +0.38% |
| imaginary/x2n1 || | 7.453e9 | -0.12% |
| parallel/blackscholes || | 8.096e9 | -0.18% |
| parallel/coins || | 1.194e10 | -0.03% |
| parallel/gray || | 6.154e9 | -0.07% |
| parallel/mandel || | 3.293e10 | +0.12% |
| parallel/matmult || | 1.118e10 | +0.06% |
| parallel/minimax || | 3.867e10 | -0.11% |
| parallel/nbody || | 7.934e8 | +0.05% |
| parallel/parfib || | 2.232e10 | -0.01% |
| parallel/partree || | 7.358e9 | +0.02% |
| parallel/prsa || | 1.808e10 | +0.14% |
| parallel/queens || | 1.037e10 | -0.03% |
| parallel/ray || | 1.301e10 | +0.01% |
| parallel/sumeuler || | 3.487e9 | -0.01% |
| parallel/transclos || | 1.983e10 | -0.02% |
| real/anna || | 5.334e9 | +0.27% |
| real/ben-raytrace || | 1.216e11 | -0.02% |
| real/bspt || | 9.224e9 | -0.05% |
| real/cacheprof || | 6.735e9 | -0.46% |
| real/compress || | 5.810e9 | +0.07% |
| real/compress2 || | 4.580e9 | -0.21% |
| real/eff/CS || | 7.582e8 | +1.19% |
| real/eff/CSD || | 3.758e9 | -0.56% |
| real/eff/FS || | 2.792e9 | +0.02% |
| real/eff/S || | 4.760e9 | -0.60% |
| real/eff/VS || | 2.285e9 | +0.20% |
| real/eff/VSD || | 8.315e7 | +0.02% |
| real/eff/VSM || | 9.480e8 | +1.48% |
| real/fem || | 6.641e9 | -0.53% |
| real/fluid || | 3.914e9 | +0.00% |
| real/fulsom || | 2.497e9 | -0.22% |
| real/gamteb || | 1.013e10 | -0.01% |
| real/gg || | 7.243e9 | +0.12% |
| real/grep || | 7.563e9 | -0.10% |
| real/hidden || | 7.209e9 | +1.57% |
| real/hpg || | 4.982e9 | +0.91% |
| real/infer || | 8.312e9 | +0.11% |
| real/lift || | 4.441e9 | -0.18% |
| real/linear || | 8.438e9 | +1.90% |
| real/maillist || | 4.297e9 | -0.94% |
| real/mkhprog || | 2.874e7 | -0.06% |
| real/parser || | 5.177e9 | +0.14% |
| real/pic || | 3.265e9 | +0.10% |
| real/prolog || | 5.755e9 | -0.18% |
| real/reptile || | 6.050e9 | +0.07% |
| real/rsa || | 7.177e9 | +0.03% |
| real/scs || | 6.184e9 | -0.23% |
| real/smallpt || | 1.129e10 | -0.16% |
| real/symalg || | 8.247e9 | -0.14% |
| real/veritas || | 4.833e9 | -0.01% |
| shootout/binary-trees || | 1.071e10 | +0.12% |
| shootout/fannkuch-redux || | 1.912e10 | +0.12% |
| shootout/fasta || | 4.273e9 | -0.50% |
| shootout/k-nucleotide || | 4.227e9 | -1.34% |
| shootout/n-body || | 3.725e9 | -0.23% |
| shootout/pidigits || | 8.095e9 | -0.04% |
| shootout/reverse-complement || | 3245583.000 | -2.41% |
| shootout/spectral-norm || | 4.238e9 | -0.15% |
| smp/callback001 || | 1.601e9 | +0.55% |
| smp/callback002 || | 2.619e9 | +0.19% |
| smp/chan || | 7.817e9 | -0.01% |
| smp/sieve || | 2.361e9 | +0.85% |
| smp/threads001 || | 5.145e9 | +0.17% |
| smp/threads003 || | 2.922e9 | -0.06% |
| smp/threads006 || | 1.081e9 | +4.82% |
| smp/threads007 || | 4.328e9 | +0.63% |
| spectral/ansi || | 5.961e9 | +0.21% |
| spectral/atom || | 5.864e9 | -0.10% |
| spectral/awards || | 8.749e9 | -0.02% |
| spectral/banner || | 8.862e9 | +0.12% |
| spectral/boyer || | 7.669e9 | -0.09% |
| spectral/boyer2 || | 8.888e9 | +0.04% |
| spectral/calendar || | 7.541e9 | +0.13% |
| spectral/cichelli || | 8.675e9 | -0.17% |
| spectral/circsim || | 6.901e9 | +0.12% |
| spectral/clausify || | 6.227e9 | -0.09% |
| spectral/constraints || | 8.308e9 | +0.36% |
| spectral/cryptarithm1 || | 7.804e9 | -0.23% |
| spectral/cryptarithm2 || | 6.757e9 | +0.11% |
| spectral/cse || | 6.357e9 | +0.01% |
| spectral/dom-lt || | 7.774e9 | +0.17% |
| spectral/eliza || | 8.279e9 | -0.12% |
| spectral/exact-reals || | 5.599e9 | -0.07% |
| spectral/expert || | 5.096e9 | -0.09% |
| spectral/fft2 || | 8.818e9 | +0.48% |
| spectral/fibheaps || | 8.019e9 | -0.12% |
| spectral/fish || | 7.319e9 | -0.03% |
| spectral/gcd || | 6.381e9 | +0.26% |
| spectral/hartel/comp_lab_zift || | 8.747e9 | -0.45% |
| spectral/hartel/event || | 9.153e9 | -1.50% |
| spectral/hartel/fft || | 3.237e9 | -0.02% |
| spectral/hartel/genfft || | 1.020e10 | +0.14% |
| spectral/hartel/ida || | 5.420e9 | -0.32% |
| spectral/hartel/listcompr || | 6.143e9 | +0.12% |
| spectral/hartel/listcopy || | 6.759e9 | +0.01% |
| spectral/hartel/nucleic2 || | 4.413e9 | -0.67% |
| spectral/hartel/parstof || | 5.552e9 | +0.04% |
| spectral/hartel/sched || | 5.807e9 | -0.02% |
| spectral/hartel/solid || | 5.850e9 | +0.22% |
| spectral/hartel/transform || | 5.713e9 | -0.01% |
| spectral/hartel/typecheck || | 5.844e9 | -0.04% |
| spectral/hartel/wang || | 8.727e9 | +0.29% |
| spectral/hartel/wave4main || | 6.034e9 | -0.20% |
| spectral/integer || | 7.048e9 | +0.64% |
| spectral/knights || | 8.310e9 | -0.08% |
| spectral/lambda || | 8.091e9 | -0.12% |
| spectral/last-piece || | 1.877e9 | +0.11% |
| spectral/lcss || | 8.776e9 | -0.10% |
| spectral/life || | 9.143e9 | -0.05% |
| spectral/mandel || | 7.015e9 | +0.24% |
| spectral/mandel2 || | 3.957e9 | +0.03% |
| spectral/mate || | 7.573e9 | +0.11% |
| spectral/minimax || | 8.645e9 | +0.10% |
| spectral/multiplier || | 6.097e9 | +0.06% |
| spectral/para || | 6.562e9 | +0.03% |
| spectral/power || | 6.758e9 | -0.23% |
| spectral/pretty || | 3371581.000 | -0.75% |
| spectral/primetest || | 7.409e9 | -0.04% |
| spectral/puzzle || | 6.405e9 | -0.19% |
| spectral/rewrite || | 5.558e9 | +0.62% |
| spectral/scc || | 3244220.000 | -1.55% |
| spectral/simple || | 1.220e10 | +0.25% |
| spectral/sorting || | 9.082e9 | -0.05% |
| spectral/sphere || | 5.371e9 | -0.18% |
| spectral/treejoin || | 9.881e9 | -0.07% |
+===============================++==+=============+==================+
| geom mean || | +0.02% | |
+-------------------------------++--+-------------+------------------+
# perf cycles
+-------------------------------++--+-------------+------------------+
| || | master/ | callstack/ (rel) |
+===============================++==+=============+==================+
| imaginary/bernouilli || | 3.726e9 | +0.96% |
| imaginary/digits-of-e1 || | 2.561e9 | +3.96% |
| imaginary/digits-of-e2 || | 2.828e9 | -1.96% |
| imaginary/exp3_8 || | 3.231e9 | +2.40% |
| imaginary/gen_regexps || | 4.250e9 | +0.26% |
| imaginary/integrate || | 2.968e9 | -9.55% |
| imaginary/kahan || | 3.062e9 | -0.40% |
| imaginary/paraffins || | 3.083e9 | -1.94% |
| imaginary/primes || | 2.593e9 | +1.49% |
| imaginary/queens || | 4.713e9 | -0.75% |
| imaginary/rfib || | 3.942e9 | -0.09% |
| imaginary/tak || | 4.385e9 | -0.60% |
| imaginary/wheel-sieve1 || | 4.582e9 | -43.27% |
| imaginary/wheel-sieve2 || | 2.563e9 | -2.37% |
| imaginary/x2n1 || | 2.867e9 | +0.10% |
| parallel/blackscholes || | 4.854e9 | -1.40% |
| parallel/coins || | 4.809e9 | -0.08% |
| parallel/gray || | 3.600e9 | +2.96% |
| parallel/mandel || | 1.481e10 | -1.08% |
| parallel/matmult || | 1.570e10 | -2.83% |
| parallel/minimax || | 2.420e10 | +7.85% |
| parallel/nbody || | 4.377e8 | +1.37% |
| parallel/parfib || | 1.752e10 | +0.16% |
| parallel/partree || | 3.345e9 | +2.19% |
| parallel/prsa || | 7.052e9 | +6.03% |
| parallel/queens || | 4.686e9 | +0.06% |
| parallel/ray || | 9.246e9 | -2.73% |
| parallel/sumeuler || | 4.166e9 | -1.20% |
| parallel/transclos || | 1.095e10 | +1.05% |
| real/anna || | 5.456e9 | -0.28% |
| real/ben-raytrace || | 6.268e10 | +2.87% |
| real/bspt || | 3.695e9 | -0.12% |
| real/cacheprof || | 3.822e9 | +5.28% |
| real/compress || | 2.389e9 | -0.41% |
| real/compress2 || | 3.284e9 | -4.00% |
| real/eff/CS || | 1.825e8 | +0.07% |
| real/eff/CSD || | 1.185e9 | -0.92% |
| real/eff/FS || | 9.959e8 | +8.14% |
| real/eff/S || | 2.161e9 | +3.14% |
| real/eff/VS || | 9.353e8 | -4.17% |
| real/eff/VSD || | 2.326e7 | +3.42% |
| real/eff/VSM || | 3.006e8 | -15.15% |
| real/fem || | 3.274e9 | -5.66% |
| real/fluid || | 3.224e9 | -2.00% |
| real/fulsom || | 1.922e9 | -1.85% |
| real/gamteb || | 5.555e9 | -0.95% |
| real/gg || | 3.717e9 | +6.49% |
| real/grep || | 3.266e9 | -4.20% |
| real/hidden || | 5.666e9 | -6.63% |
| real/hpg || | 3.082e9 | +8.56% |
| real/infer || | 4.526e9 | +4.02% |
| real/lift || | 3.450e9 | -0.91% |
| real/linear || | 6.195e9 | -3.28% |
| real/maillist || | 3.815e9 | -3.44% |
| real/mkhprog || | 1.859e7 | -4.29% |
| real/parser || | 3.315e9 | +1.96% |
| real/pic || | 2.259e9 | -2.02% |
| real/prolog || | 4.197e9 | +0.39% |
| real/reptile || | 3.234e9 | -1.87% |
| real/rsa || | 2.852e9 | -1.52% |
| real/scs || | 2.870e9 | -2.91% |
| real/smallpt || | 7.328e9 | +0.78% |
| real/symalg || | 3.427e9 | +0.10% |
| real/veritas || | 2.909e9 | +0.50% |
| shootout/binary-trees || | 5.018e9 | -0.06% |
| shootout/fannkuch-redux || | 1.014e10 | -2.68% |
| shootout/fasta || | 2.439e9 | +1.45% |
| shootout/k-nucleotide || | 3.488e9 | +4.66% |
| shootout/n-body || | 2.098e9 | -0.03% |
| shootout/pidigits || | 3.265e9 | -0.18% |
| shootout/reverse-complement || | 3311908.000 | -6.15% |
| shootout/spectral-norm || | 1.525e9 | +0.62% |
| smp/callback001 || | 8.318e8 | +9.35% |
| smp/callback002 || | 1.337e9 | +5.34% |
| smp/chan || | 3.236e9 | -0.99% |
| smp/sieve || | 7.368e8 | -0.27% |
| smp/threads001 || | 2.874e9 | -0.77% |
| smp/threads003 || | 1.841e9 | -0.36% |
| smp/threads006 || | 1.144e9 | +2.09% |
| smp/threads007 || | 3.534e9 | +3.85% |
| spectral/ansi || | 1.973e9 | -2.41% |
| spectral/atom || | 2.944e9 | -0.80% |
| spectral/awards || | 5.452e9 | -11.68% |
| spectral/banner || | 4.185e9 | -0.68% |
| spectral/boyer || | 4.195e9 | -1.23% |
| spectral/boyer2 || | 4.586e9 | -1.21% |
| spectral/calendar || | 3.726e9 | -1.97% |
| spectral/cichelli || | 4.325e9 | -0.26% |
| spectral/circsim || | 5.746e9 | -0.23% |
| spectral/clausify || | 3.735e9 | +0.10% |
| spectral/constraints || | 5.202e9 | +2.10% |
| spectral/cryptarithm1 || | 3.909e9 | -4.03% |
| spectral/cryptarithm2 || | 3.759e9 | -1.27% |
| spectral/cse || | 4.564e9 | -2.83% |
| spectral/dom-lt || | 4.830e9 | -0.05% |
| spectral/eliza || | 4.631e9 | -6.18% |
| spectral/exact-reals || | 3.471e9 | -0.08% |
| spectral/expert || | 4.020e9 | -1.27% |
| spectral/fft2 || | 4.706e9 | -1.71% |
| spectral/fibheaps || | 4.492e9 | +0.55% |
| spectral/fish || | 4.004e9 | +3.76% |
| spectral/gcd || | 3.413e9 | -2.86% |
| spectral/hartel/comp_lab_zift || | 5.377e9 | +4.10% |
| spectral/hartel/event || | 5.456e9 | -1.84% |
| spectral/hartel/fft || | 1.732e9 | +0.20% |
| spectral/hartel/genfft || | 5.124e9 | +2.82% |
| spectral/hartel/ida || | 4.414e9 | +2.00% |
| spectral/hartel/listcompr || | 3.458e9 | +3.84% |
| spectral/hartel/listcopy || | 3.776e9 | -4.30% |
| spectral/hartel/nucleic2 || | 4.137e9 | +4.49% |
| spectral/hartel/parstof || | 4.609e9 | -0.54% |
| spectral/hartel/sched || | 4.245e9 | -0.19% |
| spectral/hartel/solid || | 3.587e9 | +1.04% |
| spectral/hartel/transform || | 3.793e9 | +4.13% |
| spectral/hartel/typecheck || | 4.627e9 | -1.51% |
| spectral/hartel/wang || | 4.369e9 | -1.01% |
| spectral/hartel/wave4main || | 4.844e9 | -5.68% |
| spectral/integer || | 3.150e9 | -5.21% |
| spectral/knights || | 4.198e9 | +21.03% |
| spectral/lambda || | 3.534e9 | +1.90% |
| spectral/last-piece || | 1.134e9 | +0.65% |
| spectral/lcss || | 3.905e9 | -0.64% |
| spectral/life || | 5.646e9 | -6.52% |
| spectral/mandel || | 3.529e9 | -6.31% |
| spectral/mandel2 || | 2.570e9 | -0.24% |
| spectral/mate || | 5.761e9 | +4.42% |
| spectral/minimax || | 4.569e9 | -1.24% |
| spectral/multiplier || | 3.060e9 | +6.04% |
| spectral/para || | 4.232e9 | +1.90% |
| spectral/power || | 3.808e9 | -1.38% |
| spectral/pretty || | 3403388.000 | -22.39% |
| spectral/primetest || | 3.203e9 | -4.45% |
| spectral/puzzle || | 4.362e9 | -0.34% |
| spectral/rewrite || | 3.840e9 | +4.16% |
| spectral/scc || | 3133857.000 | +1.57% |
| spectral/simple || | 7.219e9 | -1.59% |
| spectral/sorting || | 4.285e9 | -0.29% |
| spectral/sphere || | 3.674e9 | -3.88% |
| spectral/treejoin || | 4.910e9 | +0.19% |
+===============================++==+=============+==================+
| geom mean || | -0.80% | |
+-------------------------------++--+-------------+------------------+
More information about the Libraries
mailing list