summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-11-07 12:53:59 +0000
committerBen Gamari <ben@smart-cactus.org>2019-11-07 12:57:27 +0000
commit98a5f08009f5b691a2d44d5a4f769d72f466480a (patch)
treefd0f800e97b552342bac7b79156cbfef8d86b004
parentb4fb232892ec420059e767bbf464bd09361aaefa (diff)
downloadhaskell-wip/hadrian-enable-ticky.tar.gz
hadrian: Add enableTickyGhc helperwip/hadrian-enable-ticky
This took a bit of trial-and-error to get working so it seems worth having in the tree.
-rw-r--r--hadrian/src/Flavour.hs13
1 files changed, 12 insertions, 1 deletions
diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs
index dba8621952..dd203ea88e 100644
--- a/hadrian/src/Flavour.hs
+++ b/hadrian/src/Flavour.hs
@@ -4,7 +4,7 @@ module Flavour
-- * Flavour transformers
, addArgs
, splitSections, splitSectionsIf
- , enableDebugInfo
+ , enableDebugInfo, enableTickyGhc
) where
import Expression
@@ -80,6 +80,17 @@ enableDebugInfo = addArgs $ mconcat
, builder (Cc CompileC) ? notStage0 ? arg "-g3"
]
+-- | Enable the ticky-ticky profiler in stage2 GHC
+enableTickyGhc :: Flavour -> Flavour
+enableTickyGhc =
+ addArgs $ foldMap enableTickyFor [ghc, compiler, base]
+ where
+ enableTickyFor pkg = stage1 ? package pkg ? mconcat
+ [ builder (Ghc CompileHs) ? ticky
+ , builder (Ghc LinkHs) ? ticky
+ ]
+ ticky = arg "-ticky" <> arg "-ticky-allocd"
+
-- | Transform the input 'Flavour' so as to build with
-- @-split-sections@ whenever appropriate. You can
-- select which package gets built with split sections