
#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