summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorklebinger.andreas@gmx.at <klebinger.andreas@gmx.at>2019-04-05 17:02:59 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-04-12 14:40:04 -0400
commit885d2e04854f038fbb899ab545df2b57d9b8bba4 (patch)
tree209f632fb0eef72faf41147e52f71b0bb8197129
parente05df3e1380989ca00ecd88b6d7d0f4aec5502fb (diff)
downloadhaskell-885d2e04854f038fbb899ab545df2b57d9b8bba4.tar.gz
Add -ddump-stg-final to dump stg as it is used for codegen.
Intermediate STG does not contain free variables which can be useful sometimes. So adding a flag to dump that info.
-rw-r--r--compiler/main/DynFlags.hs3
-rw-r--r--compiler/main/HscMain.hs2
-rw-r--r--docs/users_guide/debugging.rst5
3 files changed, 10 insertions, 0 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index ced0be5506..dc12879776 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -384,6 +384,7 @@ data DumpFlag
| Opt_D_dump_spec
| Opt_D_dump_prep
| Opt_D_dump_stg
+ | Opt_D_dump_stg_final
| Opt_D_dump_call_arity
| Opt_D_dump_exitify
| Opt_D_dump_stranal
@@ -3339,6 +3340,8 @@ dynamic_flags_deps = [
(setDumpFlag Opt_D_dump_prep)
, make_ord_flag defGhcFlag "ddump-stg"
(setDumpFlag Opt_D_dump_stg)
+ , make_ord_flag defGhcFlag "ddump-stg-final"
+ (setDumpFlag Opt_D_dump_stg_final)
, make_ord_flag defGhcFlag "ddump-call-arity"
(setDumpFlag Opt_D_dump_call_arity)
, make_ord_flag defGhcFlag "ddump-exitify"
diff --git a/compiler/main/HscMain.hs b/compiler/main/HscMain.hs
index 16c8db94d9..911d52cbfd 100644
--- a/compiler/main/HscMain.hs
+++ b/compiler/main/HscMain.hs
@@ -1470,6 +1470,8 @@ doCodeGen hsc_env this_mod data_tycons
let dflags = hsc_dflags hsc_env
let stg_binds_w_fvs = annTopBindingsFreeVars stg_binds
+ dumpIfSet_dyn dflags Opt_D_dump_stg_final
+ "STG for code gen:" (pprGenStgTopBindings stg_binds_w_fvs)
let cmm_stream :: Stream IO CmmGroup ()
cmm_stream = {-# SCC "StgCmm" #-}
StgCmm.codeGen dflags this_mod data_tycons
diff --git a/docs/users_guide/debugging.rst b/docs/users_guide/debugging.rst
index 381bf1809a..ff02fc4c7b 100644
--- a/docs/users_guide/debugging.rst
+++ b/docs/users_guide/debugging.rst
@@ -380,6 +380,11 @@ These flags dump various phases of GHC's STG pipeline.
Show the output of the intermediate STG-to-STG pass. (*lots* of output!)
+.. ghc-flag:: -ddump-stg-final
+ :shortdesc: Show output of last STG pass.
+ :type: dynamic
+
+ Show the output of the last STG pass before we generate Cmm.
C-\\- representation
~~~~~~~~~~~~~~~~~~~~