[GHC] #12962: No automatic SCC annotations for functions marked INLINABLE
GHC
ghc-devs at haskell.org
Wed May 10 07:16:35 UTC 2017
#12962: No automatic SCC annotations for functions marked INLINABLE
-------------------------------------+-------------------------------------
Reporter: MikolajKonarski | Owner: dfeuer
Type: bug | Status: new
Priority: normal | Milestone: 8.4.1
Component: Profiling | Version: 8.0.1
Resolution: | Keywords: Inlining,
| newcomer
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #12963 | Differential Rev(s): Phab:D3550
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by dfeuer):
Simon, there's a Note [inline sccs] about why we don't have them for
`INLINE` things:
{{{#!hs
-- It should be reasonable to add ticks to INLINE functions; however
-- currently this tickles a bug later on because the SCCfinal pass
-- does not look inside unfoldings to find CostCentres. It would be
-- difficult to fix that, because SCCfinal currently works on STG and
-- not Core (and since it also generates CostCentres for CAFs,
-- changing this would be difficult too).
--
-- Another reason not to add ticks to INLINE functions is that this
-- sometimes handy for avoiding adding a tick to a particular function
-- (see #6131)
--
-- So for now we do not add any ticks to INLINE functions at all.
}}}
Even if dealing with ticks through inlining isn't feasible, this whole
thing seems a bit surprising to me because `INLINE` bindings aren't always
inlined, and non-`INLINE` bindings often are. Using an `INLINE` annotation
for its side effect on SCC annotations seems rather ugly.
The current proposed change just does what osa1 seems to suggest, limiting
the exclusion to `INLINE` rather than to both `INLINE` and `INLINABLE` in
`Coverage.hs`. This appears to affect ticks generally, rather than SCC
ticks specifically, but that ''seems'' to my uneducated eye to be the case
for the various auto-add options too (see `shouldTickBind` and
`mkDensity`).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12962#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list