[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