diff options
author | klebinger.andreas@gmx.at <klebinger.andreas@gmx.at> | 2019-04-05 17:02:59 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-04-12 14:40:04 -0400 |
commit | 885d2e04854f038fbb899ab545df2b57d9b8bba4 (patch) | |
tree | 209f632fb0eef72faf41147e52f71b0bb8197129 | |
parent | e05df3e1380989ca00ecd88b6d7d0f4aec5502fb (diff) | |
download | haskell-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.hs | 3 | ||||
-rw-r--r-- | compiler/main/HscMain.hs | 2 | ||||
-rw-r--r-- | docs/users_guide/debugging.rst | 5 |
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 ~~~~~~~~~~~~~~~~~~~~ |