[GHC] #13236: Improve floating for join points

GHC ghc-devs at haskell.org
Fri Feb 17 15:36:59 UTC 2017


#13236: Improve floating for join points
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 Question 3. Here's a concrete example
 {{{
 f b x
    = let j1 :: Integer -> Integer
          j1 y = let j2 z = if b && z>0 then z+z+z+z+z else j2 (z-1)
                 in j2 y
      in
      if b then j1 x else j1 (x-1)
 }}}
 Currently `j2` does not float out of `j1`.  I agree that it should.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13236#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list