
#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): I am wondering about the best place to perform this transformation. I could do it relatively easily as part of loopification (#14068), which I currently inserted between the occurrence analyser and the simplifier. But we also want to do it to `joinrec`s that are already `joinrec`s? The float out phase might also be a suitable place, since it – well – floats out expressions. Or maybe the simplifier itself (which has a notions of floating expressions, doesn’t it) can do it? Or should it be a pass of its own? Simon, what is your intuition here? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14152#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler