[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