summaryrefslogtreecommitdiff
path: root/compiler/stgSyn
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2017-11-02 13:32:21 -0400
committerBen Gamari <ben@smart-cactus.org>2017-11-02 14:32:57 -0400
commitcbd6a4d05bf382641b108347218dfd534dc57558 (patch)
tree244989d829d0c191405b48655cfe6dd6babc16f9 /compiler/stgSyn
parent36f0cb74c5f7a0a8f3d164e580f293fa07106064 (diff)
downloadhaskell-cbd6a4d05bf382641b108347218dfd534dc57558.tar.gz
Introduce -dsuppress-stg-free-vars flag
This breaks out control over STG free variable list output from -dppr-debug into its own distinct flag. This makes it more discoverable and easier to change independently from other dump output. Test Plan: Validate Reviewers: austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4140
Diffstat (limited to 'compiler/stgSyn')
-rw-r--r--compiler/stgSyn/StgSyn.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/stgSyn/StgSyn.hs b/compiler/stgSyn/StgSyn.hs
index b31a8fce3b..330e2b409f 100644
--- a/compiler/stgSyn/StgSyn.hs
+++ b/compiler/stgSyn/StgSyn.hs
@@ -803,9 +803,11 @@ pprStgRhs :: (OutputableBndr bndr, Outputable bdee, Ord bdee)
-- special case
pprStgRhs (StgRhsClosure cc bi [free_var] upd_flag [{-no args-}] (StgApp func []))
- = hsep [ ppr cc,
+ = sdocWithDynFlags $ \dflags ->
+ hsep [ ppr cc,
pp_binder_info bi,
- brackets (whenPprDebug (ppr free_var)),
+ if not $ gopt Opt_SuppressStgFreeVars dflags
+ then brackets (ppr free_var) else empty,
text " \\", ppr upd_flag, ptext (sLit " [] "), ppr func ]
-- general case
@@ -813,7 +815,8 @@ pprStgRhs (StgRhsClosure cc bi free_vars upd_flag args body)
= sdocWithDynFlags $ \dflags ->
hang (hsep [if gopt Opt_SccProfilingOn dflags then ppr cc else empty,
pp_binder_info bi,
- whenPprDebug (brackets (interppSP free_vars)),
+ if not $ gopt Opt_SuppressStgFreeVars dflags
+ then brackets (interppSP free_vars) else empty,
char '\\' <> ppr upd_flag, brackets (interppSP args)])
4 (ppr body)