[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