[GHC] #14152: Float exit paths out of recursive functions
GHC
ghc-devs at haskell.org
Tue Aug 29 22:28:08 UTC 2017
#14152: Float exit paths out of recursive functions
-------------------------------------+-------------------------------------
Reporter: nomeata | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Resolution: | Keywords: JoinPoints
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #14137 #10918 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by nomeata):
Ok, so `wip/T14152` has an implementation that works (judging from looking
at the Core output). It’s not polished, but good enough to play around to
see what happens. It’s also inefficient (it should probably work on an fv-
annotated syntax tree instead of recomputing the free variables
repeatedly.
But it still applies “exitification” only together with “loopification”.
This makes it hard to evaluate the merits of this ticket independently of
loopification. Also, if we want “exitification”, then we want it for all
joinrecs.
Is there a better place to do it? Should it simply be a pass on its own
that we run maybe after the first simplifier (which introduces most
joinrecs?)?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14152#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list