
#12963: Give -fexpose-all-unfoldings the same semantics as INLINABLE on each function -------------------------------------+------------------------------------- Reporter: MikolajKonarski | Owner: Type: feature request | Status: infoneeded Priority: normal | 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: #12962 #12463 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj):
Feature request: give `-fexpose-all-unfoldings` the same semantics as INLINABLE on each function.
I don't think we should do this. * `-fexpose-all-unfoldings` has no effect on the optimisation pipeline; it just arranges that, at the end of the pipeline all the unfoldings for all functions are put into the interface file. * `INLINABLE` is quite different. It says to snapshot (essentially the source code of) the RHS of the function, and make it available for inlining and/or specialisation at call sites. So it could have a major effect on the optimisation pipeline. (I'd prefer that it was called `SPECIALISABLE`.) Anyway I don't think it'd be a good idea to make them the same. If you want ''all'' the user-written top-level functions to be `INLINABLE`, we'll need a way to say just that; a reasonable feature request. Perhaps `{-# SPECIALISABLE_ALL #-}`? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12963#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler