[GHC] #14152: Float exit paths out of recursive functions
GHC
ghc-devs at haskell.org
Tue Aug 29 16:25:51 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 simonpj):
> Are you saying that it should be made False?
Ah... no, for functions `int_cxt` is true if it is applied.
Perhaps for join-points `preInlineUnconditionally` should never be True if
`in_lam` is true. That validates what we are trying here.
> But there is an exception to that: Inside a recursive join point we do
set occ_in_lam.
Yes: `occ_in_lam` is true for a join point precisely when that join point
is the exit of a recursive loop! That's just what we want.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14152#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list