
#5889: -fno-prof-count-entries leads to linking errors -------------------------------------+------------------------------------- Reporter: akio | Owner: bgamari Type: bug | Status: new Priority: highest | Milestone: 8.4.1 Component: Compiler | Version: 8.3 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 | (amd64) Type of failure: GHC rejects | Test Case: valid program | profiling/should_compile/T5889 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by osa1):
My current understanding is now that the cost-centres are, modulo bugs, removed when they aren't wrapping any work. I don't think we have any examples here of erroneous cost-centre removal, do you agree?
Cost centres are just program annotations. When you say -fprof-auto to
Well, this ticket iself is an example of erroneous cost-centre removal, isn't it? I don't know answers to other questions, but I think the right thing to do here is to collect cost-centers in Core instead of STG (maybe in coreToStg). Because unfoldings are just Core expressions, once we have the code for collecting cost centers from unfoldings we can just use the same function for the actual program so no need for two functions for collecting cost centers (one collects from Core, another one from STG). So once we write this we can get rid of cost center collection in STG, `stgMassageForProfiling` would just add CAF cost centers. On a related note, I found this in the user manual: (8.1.1) the compiler, it automatically inserts a cost centre annotation around every binding not marked INLINE in your program, but you are entirely free to add cost centre annotations yourself. So GHC by default avoids this bug by not adding SCCs to INLINE functions but if you do it yourself you get this bug in some cases. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/5889#comment:26 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler