
#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