[GHC] #1600: Optimisation: CPR the results of IO
GHC
ghc-devs at haskell.org
Tue Dec 3 17:42:34 UTC 2013
#1600: Optimisation: CPR the results of IO
-------------------------------------+-------------------------------------
Reporter: simonmar | Owner:
Type: task | Status: new
Priority: lowest | Milestone: 7.6.2
Component: Compiler | Version: 6.6.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: Runtime | Difficulty: Moderate (less
performance bug | than a day)
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+-------------------------------------
Comment (by nomeata):
Run nofib the first time, mixed results:
{{{
binary-trees -1.3% +0.6% +7.7% +7.5% +0.0%
hidden -1.3% -0.5% -0.3% -0.5% +0.0%
mandel -1.2% -9.2% 0.10 0.10 +0.0%
nucleic2 -1.0% -2.6% 0.11 0.11 +0.0%
reverse-complem -1.3% +4.9% 0.21 0.22 +0.0%
--------------------------------------------------------------------------------
Min -1.4% -9.2% -6.3% -6.6% -4.5%
Max -1.0% +4.9% +7.7% +7.5% +0.0%
Geometric Mean -1.3% -0.0% +0.5% +0.6% -0.1%
}}}
The gain in mandel seems to come from a a few more unboxed results in
`Data.Complex`, in particular the return types of `$w$sphase` and
`$w$smagnitued` turns from `Double` to `Double#` (and likewise the
`Float`-specializations).
And why the new chance for that? Because `$fFloatingComplex` (which is a
CAF for `D# 0.0`) and other constants are inlined (and thus no longer
shared). Not sure why that part changed, and it seems that this is not
related to ''nested''CPR...
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/1600#comment:24>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list