diff options
author | Alexander Biehl <alexbiehl@gmail.com> | 2018-08-27 15:50:37 +0200 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2018-09-12 10:30:20 +0200 |
commit | 88ce4f5e8a2706c28bde0794932cba17cb816286 (patch) | |
tree | 9c65280144689e089caf58cba954f705dc67acf2 /pkgs/development/haskell-modules/generic-builder.nix | |
parent | f8a158c3466bb013e776e590871da9f1869667f7 (diff) | |
download | nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.tar nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.tar.gz nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.tar.bz2 nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.tar.lz nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.tar.xz nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.tar.zst nixlib-88ce4f5e8a2706c28bde0794932cba17cb816286.zip |
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.
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r-- | pkgs/development/haskell-modules/generic-builder.nix | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index a0dd2a305f89..cdbf119af8c4 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -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) |