
#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