
#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