[GHC] #6087: Join points need strictness analysis
GHC
ghc-devs at haskell.org
Wed Feb 21 09:45:30 UTC 2018
#6087: Join points need strictness analysis
-------------------------------------+-------------------------------------
Reporter: simonpj | Owner: (none)
Type: bug | Status: infoneeded
Priority: normal | Milestone: 8.6.1
Component: Compiler | Version: 7.4.1
Resolution: | Keywords: JoinPoints
Operating System: Unknown/Multiple | Architecture:
Type of failure: Runtime | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
Correct. Another example might be
{{{
f :: Int -> [Int]
f 0 = []
f n = n : f (n-1)
}}}
It's strict all right, but we need the boxed 'n' for the result.
"Boxity" analysis might try to figure out when the boxed version is
needed, and pass that too. At one stage I had that but it seemed
unprincipled.
Bottom line so far: late demand analysis can be a win, but only rarely so;
and it can be a loss. It's a pity -- I'd like to make it part of -O2. But
we probably have higher priorities for now.
''Can you add the nofib numbers in a comment, please, for posterity?''
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/6087#comment:32>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list