[GHC] #1600: Optimisation: CPR the results of IO

GHC ghc-devs at haskell.org
Tue Dec 10 10:10:56 UTC 2013


#1600: Optimisation: CPR the results of IO
-------------------------------------+-------------------------------------
        Reporter:  simonmar          |            Owner:  nomeata
            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:  #8598
-------------------------------------+-------------------------------------

Comment (by nomeata):

 Unfortunately, that was not it. The only visible change left is that
 `addtoLUT` in `Lisplikefns` is getting nestedly CPR’ed, without real gain
 (but also without loss, one would think).

 There is one other lead: With nested CPR, lots of "show" methods get a
 nested CPR property. E.g. the show method for `(,)` has now a return
 demand `tm2(tm(d),d)` (instead of `m2` as before), so the worker returns
 `(# GHC.Prim.Char#, [GHC.Types.Char] #)` instead of `(# GHC.Types.Char,
 [GHC.Types.Char] #)`, likely causing a re-boxing of the `(` character.

 I’ll disable nested CPR information inside a sum type to confirm this
 theory.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/1600#comment:30>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list