[GHC] #13966: Skip-less stream fusion: a missed opportunity

GHC ghc-devs at haskell.org
Mon Jul 31 17:16:03 UTC 2017


#13966: Skip-less stream fusion: a missed opportunity
-------------------------------------+-------------------------------------
        Reporter:  jmspiewak         |                Owner:  mpickering
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.2.1-rc3
      Resolution:                    |             Keywords:  JoinPoints,
                                     |  StaticArgumentTransformation
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #14067            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by nomeata):

 Hmm, maybe I did that a bit prematurely, without fully understanding what
 we should be doing.

 Upon closer reading, there are two tasks:

 * Transforming a tail-recursive function into a non-recursive function
 with a `joinrec`.
 * SAT for tail-recursive functions

 It seems that the first is independent of the second, and if the first one
 was done, one can rephrase the second as “SAT for `joinrec`s”. Is that
 roughly correct?

 (I am surprised that the former is not done already from the beginning of
 join points in GHC. But a brief look at the distribution of labor between
 OccAnal and the Simplifier makes it clear to me that this change is not
 trivial.)

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


More information about the ghc-tickets mailing list