[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