More conservative SCC tagging for Haskell libraries
`all-functions` corresponds to `-fprof-auto` which places an SCC on every binding. It is well known that SCCs hinder GHC from doing its optimization magic and really slows down profiled code to a point where the profiling reports are completely skewed towards things that were completely optimized away in production settings. Concretely this shows up with things like lenses which do not carry runtime overhead when properly simplified. `exported-functions` corresponds to GHCs `-fprof-auto-exported` which doesn't put SCCs on `INLINE`d code and in turn doesn't influence simplification of this basic but important stuff.
This commit is contained in:
parent
f8a158c346
commit
88ce4f5e8a
|
@ -26,7 +26,7 @@ in
|
|||
, editedCabalFile ? null
|
||||
, enableLibraryProfiling ? true
|
||||
, enableExecutableProfiling ? false
|
||||
, profilingDetail ? "all-functions"
|
||||
, profilingDetail ? "exported-functions"
|
||||
# TODO enable shared libs for cross-compiling
|
||||
, enableSharedExecutables ? false
|
||||
, enableSharedLibraries ? (ghc.enableShared or false)
|
||||
|
|
Loading…
Reference in New Issue