summaryrefslogtreecommitdiff
path: root/compiler/main
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/main')
-rw-r--r--compiler/main/CodeOutput.lhs5
-rw-r--r--compiler/main/StaticFlags.hs14
2 files changed, 16 insertions, 3 deletions
diff --git a/compiler/main/CodeOutput.lhs b/compiler/main/CodeOutput.lhs
index a66a836c67..61b10bcc38 100644
--- a/compiler/main/CodeOutput.lhs
+++ b/compiler/main/CodeOutput.lhs
@@ -29,6 +29,9 @@ import FastString ( unpackFS )
import Cmm ( Cmm )
import HscTypes
import DynFlags
+
+import StaticFlags ( opt_DoTickyProfiling )
+
import ErrUtils ( dumpIfSet_dyn, showPass, ghcExit )
import Outputable
import Pretty ( Mode(..), printDoc )
@@ -131,7 +134,7 @@ outputC dflags filenm mod location flat_absC
all_headers = c_includes
++ reverse cmdline_includes
++ ffi_decl_headers
-
+
let cc_injects = unlines (map mk_include all_headers)
mk_include h_file =
case h_file of
diff --git a/compiler/main/StaticFlags.hs b/compiler/main/StaticFlags.hs
index ab2c8e8ccf..53957e7744 100644
--- a/compiler/main/StaticFlags.hs
+++ b/compiler/main/StaticFlags.hs
@@ -97,7 +97,7 @@ parseStaticFlags args = do
when (not (null errs)) $ throwDyn (UsageError (unlines errs))
-- deal with the way flags: the way (eg. prof) gives rise to
- -- futher flags, some of which might be static.
+ -- further flags, some of which might be static.
way_flags <- findBuildTag
-- if we're unregisterised, add some more flags
@@ -489,7 +489,8 @@ findBuildTag :: IO [String] -- new options
findBuildTag = do
way_names <- readIORef v_Ways
let ws = sort (nub way_names)
- if not (allowed_combination ws)
+ res <-
+ if not (allowed_combination ws)
then throwDyn (CmdLineError $
"combination not supported: " ++
foldr1 (\a b -> a ++ '/':b)
@@ -503,6 +504,15 @@ findBuildTag = do
writeIORef v_RTS_Build_tag rts_tag
return (concat flags)
+ -- krc: horrible, I know.
+ (if opt_DoTickyProfiling then do
+ writeIORef v_RTS_Build_tag (mkBuildTag [(lkupWay WayTicky)])
+ return (res ++ (wayOpts (lkupWay WayTicky)))
+ else
+ return res)
+
+
+
mkBuildTag :: [Way] -> String
mkBuildTag ways = concat (intersperse "_" (map wayTag ways))