[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