[GHC] #13143: NOINLINE and worker/wrapper
GHC
ghc-devs at haskell.org
Mon Feb 6 17:19:46 UTC 2017
#13143: NOINLINE and worker/wrapper
-------------------------------------+-------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: closed
Priority: normal | Milestone: 8.2.1
Component: Compiler | Version: 8.0.1
Resolution: fixed | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): D3046
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by nomeata):
Hmm. I guess I am a bit late to the party, but I feel uneasy about this.
On some level, to me, `NOINLINE` means “Dear compiler, in all uses of
this, please treat this as a black box with precisely the interface I give
here.” Allowing W/W moves a part of what the function does (e.g. taking a
constructor apart) to the uses.
I guess the test case did not come up with anything, but does this
interfere with rules? A rule might mention the `NOINLINE` thing, but
aftetr W/W, the worker remains, and a rule will no longer fire.
`NOINLINE` is also very useful to prevent the compiler from optimizing
test cases in our test suite too much (although I see that that should not
be a driving factor).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13143#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list