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

GHC ghc-devs at haskell.org
Fri Aug 24 16:55:00 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 sgraf):

 Replying to [comment:6 simonpj]:
 > Hmm.  What about heap checks?  If a join point `j` does heap
 allocations, where do we do the heap-overflow check?  Maybe we should
 absorb the heap allocation into the jump site (as if the code was
 inlined)?  That could avoid doing two heap checks where only one is
 needed. (Would only work for non-recursive join points.)
 >
 > Also I'm unclear about how we save live variables around a GC call at
 the start of a join point.  (On function entry we use the function's info
 table; on a case return point we use its info table.)

 I was under the impression that join points never allocate and that they
 rather re-use the closure of their enclosing scope. Also, currently full
 laziness will never float join points (or any other binding) that closes
 over local variables to top-level, so we can probably disregard heap
 overflow checks.

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


More information about the ghc-tickets mailing list