[GHC] #9279: Local wrapper function remains in final program; result = extra closure allocation

GHC ghc-devs at haskell.org
Mon Sep 10 11:01:16 UTC 2018


#9279: Local wrapper function remains in final program; result = extra closure
allocation
-------------------------------------+-------------------------------------
        Reporter:  simonmar          |                Owner:  simonpj
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.8.2
      Resolution:                    |             Keywords:  LateLamLift
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by sgraf):

 The absent case in WWLib.hs requires that we can `mk_absent_let` for that
 particular type. For the 3 absent parameters here are of type `MutVar# s
 a`, `MutVar# s a` and `TVar# s a`.

 We ''could'' extend `Literal.absentLiteralOf` for these unlifted, boxed
 cases simply by returning (the equivalent of) NULL. Alternatively, we
 could make sure that we don't unpack these things in the first place: If
 we had taken lifted `MutVar`s/`TVar`s, `mk_absent_let` would successfully
 conjure a lifted let binding with an absent error (so I'd say).

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


More information about the ghc-tickets mailing list