[GHC] #15560: Full laziness destroys opportunities for join points

GHC ghc-devs at haskell.org
Thu Aug 23 21:55:15 UTC 2018


#15560: Full laziness destroys opportunities for join points
-------------------------------------+-------------------------------------
        Reporter:  AndreasK          |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler          |              Version:  8.4.3
  (CodeGen)                          |
      Resolution:                    |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #14287            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 Generally, I think we should not float join points -- in general floating
 them will stop them being join points.  It'd be easy to change `SetLevels`
 thus -- but intuition is a poor guide and it'd be really worth trying it
 and measuring the effect.

 However, if the binding can go all the way to the top level, then there
 seems no downside to floating it: we end up with a smaller (and hence
 perhaps more inlinable) function; and the jump to the join point is still
 a nice, efficient jump.   What's not to like?  (Your Description suggests
 that you think that doing so is Bad.  Why?)

 All that said, there is a Huge Mess in `SetLevels` around join points with
 stuff about the "join ceiling".  I want to expunge all that, but have
 lacked the time.  The trouble is that we do want some limited, local
 floating -- I have a whole WIP tree pending on that, but it's in limbo.

 If anyone would like to work on this, I'll commit my WIP to a branch and
 offer advice/support on taking it forward.

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


More information about the ghc-tickets mailing list