[GHC] #1600: Optimisation: CPR the results of IO
GHC
ghc-devs at haskell.org
Fri Nov 9 09:16:11 UTC 2018
#1600: Optimisation: CPR the results of IO
-------------------------------------+-------------------------------------
Reporter: simonmar | Owner: (none)
Type: task | Status: new
Priority: lowest | Milestone:
Component: Compiler | Version: 6.6.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Runtime | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: #8598 | Differential Rev(s): Phab:D4244
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by mpickering):
Sebastian says that this patch got parked because of a few reasons. Anyone
interested in picking up this ticket can see a source of ideas in the
linked differential. https://phabricator.haskell.org/D4244
He says:
* I wasn't sure I understood everything that was going in that patch
* There were several 'improvements' that were independent of nested CPR
that we wanted to test in isolation (#15001, D4563, D4565)
* I felt strongly against complicating demand analysis any further. I
remember there was this horrible special case for `case` expressions
([https://phabricator.haskell.org/D4244#inline-35408 klick]) that IMO
shows that CPR analysis, as opposed to Usage/Strictness analysis, is a
forward analysis. Also there's this 'virgin run', which basically means we
run the demand analyser twice anyway, because CPR relies on strictness
info being available. That's why I strongly argue that we should split off
CPR analysis first before implementing nested CPR.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/1600#comment:82>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list