summaryrefslogtreecommitdiff
path: root/compiler/main/ErrUtils.lhs
diff options
context:
space:
mode:
authorBen.Lippmeier@anu.edu.au <unknown>2007-08-22 17:04:12 +0000
committerBen.Lippmeier@anu.edu.au <unknown>2007-08-22 17:04:12 +0000
commitf2cd56cf9fc310c9b587ecb5dfaee4ad6b580355 (patch)
tree5f172f8965d754b2926be8460ef59a476f503f35 /compiler/main/ErrUtils.lhs
parentab676aa34302b346cc05181100b46d8490023971 (diff)
downloadhaskell-f2cd56cf9fc310c9b587ecb5dfaee4ad6b580355.tar.gz
Refactor cmmNativeGen so dumps can be emitted inline with NCG stages
Diffstat (limited to 'compiler/main/ErrUtils.lhs')
-rw-r--r--compiler/main/ErrUtils.lhs14
1 files changed, 8 insertions, 6 deletions
diff --git a/compiler/main/ErrUtils.lhs b/compiler/main/ErrUtils.lhs
index d93fb1bdef..8b3af12207 100644
--- a/compiler/main/ErrUtils.lhs
+++ b/compiler/main/ErrUtils.lhs
@@ -16,7 +16,7 @@ module ErrUtils (
ghcExit,
doIfSet, doIfSet_dyn,
- dumpIfSet, dumpIfSet_core, dumpIfSet_dyn, dumpIfSet_dyn_or, mkDumpDoc,
+ dumpIfSet, dumpIfSet_core, dumpIfSet_dyn, dumpIfSet_dyn_or, mkDumpDoc, dumpSDoc,
-- * Messages during compilation
putMsg,
@@ -199,13 +199,13 @@ dumpIfSet_core dflags flag hdr doc
| dopt flag dflags
|| verbosity dflags >= 4
|| dopt Opt_D_verbose_core2core dflags
- = writeDump dflags flag (mkDumpDoc hdr doc)
+ = dumpSDoc dflags flag hdr doc
| otherwise = return ()
dumpIfSet_dyn :: DynFlags -> DynFlag -> String -> SDoc -> IO ()
dumpIfSet_dyn dflags flag hdr doc
| dopt flag dflags || verbosity dflags >= 4
- = writeDump dflags flag (mkDumpDoc hdr doc)
+ = dumpSDoc dflags flag hdr doc
| otherwise
= return ()
@@ -228,11 +228,13 @@ mkDumpDoc hdr doc
-- | Write out a dump.
-- If --dump-to-file is set then this goes to a file.
-- otherwise emit to stdout.
-writeDump :: DynFlags -> DynFlag -> SDoc -> IO ()
-writeDump dflags dflag doc
+dumpSDoc :: DynFlags -> DynFlag -> String -> SDoc -> IO ()
+dumpSDoc dflags dflag hdr doc
= do let mFile = chooseDumpFile dflags dflag
case mFile of
-- write the dump to a file
+ -- don't add the header in this case, we can see what kind
+ -- of dump it is from the filename.
Just fileName
-> do handle <- openFile fileName AppendMode
hPrintDump handle doc
@@ -240,7 +242,7 @@ writeDump dflags dflag doc
-- write the dump to stdout
Nothing
- -> do printDump doc
+ -> do printDump (mkDumpDoc hdr doc)
-- | Choose where to put a dump file based on DynFlags