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

GHC ghc-devs at haskell.org
Mon Nov 25 17:27:53 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):

 I’m working on nested cpr now. There a few related tickets (#1885 and
 #2289), but I’ll report my progress here, mostly because this has the
 lowest number and the fine `factIO` example.

 Building on a patch from SPJ I now have a branch that works in simple
 cases. I have some doubts about correctness (i.e. `bothDmdType` is used
 both for type applications and cases, but I believe these need to treat
 the question of convergence differently).

 Also, it does ''not'' work for the `factIO` example yet, probably because
 there is an unboxed tuple to begin with. Need to investigate.

 The testsuite goes through (reporting, as it seems, only differences in,
 well, demand signatures), but nofib’s `typecheck` fills the memory
 quickly, so the analysis clearly is not conservative yet.. Need to
 investigate.

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


More information about the ghc-tickets mailing list