
#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