[GHC] #12463: SPECIALIZABLE pragma?
GHC
ghc-devs at haskell.org
Tue Sep 27 22:00:02 UTC 2016
#12463: SPECIALIZABLE pragma?
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner:
Type: feature request | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 8.0.1
Resolution: | Keywords: Inlining
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by bgamari):
Bah, yes, I suppose you are right. The name `INLINEABLE` is still rather
unsatisfying but that is a very minor issue.
However, putting `SPECIALIZABLE` aside for a moment, I do wonder there
might still be value in the `RECURSIVE_SPECIALIZEABLE` variant. Admittedly
it is an extremely large hammer, but there are sometimes cases where you
really want to avoid dictionary passing and dynamic dispatch if at all
possible. This is especially true of CPS'd code (the `binary` library, for
instance), where the entire point is that we want GHC to collapse code
from various points in the program into a single straight run. Currently
composing `binary` decoders from across modules requires quite some care
as a single missing `INLINEABLE` can have significant performance
implications which can currently only be spotted by looking carefully at
the simplified Core.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12463#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list