[GHC] #16254: INLINABLE pragma and newtype wrappers prevent inlining

GHC ghc-devs at haskell.org
Mon Mar 4 18:51:02 UTC 2019


#16254: INLINABLE pragma and newtype wrappers prevent inlining
-------------------------------------+-------------------------------------
        Reporter:  monoidal          |                Owner:  monoidal
            Type:  bug               |               Status:  closed
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.6.3
      Resolution:  fixed             |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
                                     |  simplCore/should_compile/T16254
      Blocked By:                    |             Blocking:
 Related Tickets:  #5327             |  Differential Rev(s):
       Wiki Page:                    |  https://gitlab.haskell.org/ghc/ghc/merge_requests/325/
-------------------------------------+-------------------------------------

Comment (by Matthew Pickering <matthewtpickering@…>):

 In [changeset:"c25b135ff5b9c69a90df0ccf51b04952c2dc6ee1/ghc"
 c25b135f/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="c25b135ff5b9c69a90df0ccf51b04952c2dc6ee1"
 Fix exprIsConApp_maybe

 In this commit
    commit 7833cf407d1f608bebb1d38bb99d3035d8d735e6
    Date:   Thu Jan 24 17:58:50 2019 +0100
       Look through newtype wrappers (Trac #16254)

 we made exprIsConApp_maybe quite a bit cleverer.  But I had not paid
 enough attention to keeping exactly the correct substitution and
 in-scope set, which led to Trac #16348.

 There were several buglets (like applying the substitution twice in
 exprIsConApp_maybe, but the proximate source of the bug was that we were
 calling addNewInScopeIds, which deleted things from the substitution as
 well as adding them to the in-scope set.  That's usually right, but not
 here!

 This was quite tricky to track down.  But it is nicer now.
 }}}

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


More information about the ghc-tickets mailing list