Skip to content
Snippets Groups Projects
Commit bd8ead09 authored by sof's avatar sof
Browse files

[project @ 1997-09-04 19:56:48 by sof]

ppr tidy up
parent 7483b805
No related merge requests found
...@@ -34,7 +34,8 @@ import Id ( nullIdEnv, lookupIdEnv, addOneToIdEnv, ...@@ -34,7 +34,8 @@ import Id ( nullIdEnv, lookupIdEnv, addOneToIdEnv,
) )
import Maybes ( maybeToBool ) import Maybes ( maybeToBool )
import PprType ( GenType{-instance Outputable-} ) import PprType ( GenType{-instance Outputable-} )
import Outputable ( PprStyle, Outputable(..) ) import ErrUtils ( doIfSet )
import Outputable ( PprStyle, Outputable(..), printErrs, pprDumpStyle )
import Pretty ( Doc, ($$), vcat, text, ptext ) import Pretty ( Doc, ($$), vcat, text, ptext )
import UniqSupply ( splitUniqSupply, UniqSupply ) import UniqSupply ( splitUniqSupply, UniqSupply )
import Util ( mapAccumL, panic, assertPanic ) import Util ( mapAccumL, panic, assertPanic )
...@@ -43,7 +44,6 @@ import Util ( mapAccumL, panic, assertPanic ) ...@@ -43,7 +44,6 @@ import Util ( mapAccumL, panic, assertPanic )
\begin{code} \begin{code}
stg2stg :: [StgToDo] -- spec of what stg-to-stg passes to do stg2stg :: [StgToDo] -- spec of what stg-to-stg passes to do
-> FAST_STRING -- module name (profiling only) -> FAST_STRING -- module name (profiling only)
-> PprStyle -- printing style (for debugging only)
-> UniqSupply -- a name supply -> UniqSupply -- a name supply
-> [StgBinding] -- input... -> [StgBinding] -- input...
-> IO -> IO
...@@ -51,16 +51,13 @@ stg2stg :: [StgToDo] -- spec of what stg-to-stg passes to do ...@@ -51,16 +51,13 @@ stg2stg :: [StgToDo] -- spec of what stg-to-stg passes to do
([CostCentre], -- local cost-centres that need to be decl'd ([CostCentre], -- local cost-centres that need to be decl'd
[CostCentre])) -- "extern" cost-centres [CostCentre])) -- "extern" cost-centres
stg2stg stg_todos module_name ppr_style us binds stg2stg stg_todos module_name us binds
= case (splitUniqSupply us) of { (us4now, us4later) -> = case (splitUniqSupply us) of { (us4now, us4later) ->
(if do_verbose_stg2stg then doIfSet do_verbose_stg2stg
hPutStr stderr "VERBOSE STG-TO-STG:\n" >> (printErrs (text "VERBOSE STG-TO-STG:" $$
hPutStr stderr (show text "*** Core2Stg:" $$
(($$) (ptext SLIT("*** Core2Stg:")) vcat (map (ppr pprDumpStyle) (setStgVarInfo False binds)))) >>
(vcat (map (ppr ppr_style) (setStgVarInfo False binds)))
))
else return ()) >>
-- Do the main business! -- Do the main business!
foldl_mn do_stg_pass (binds, us4now, ([],[])) stg_todos foldl_mn do_stg_pass (binds, us4now, ([],[])) stg_todos
...@@ -110,7 +107,7 @@ stg2stg stg_todos module_name ppr_style us binds ...@@ -110,7 +107,7 @@ stg2stg stg_todos module_name ppr_style us binds
------------- -------------
stg_linter = if False --LATER: opt_DoStgLinting (ToDo) stg_linter = if False --LATER: opt_DoStgLinting (ToDo)
then lintStgBindings ppr_style then lintStgBindings pprDumpStyle
else ( \ whodunnit binds -> binds ) else ( \ whodunnit binds -> binds )
------------------------------------------- -------------------------------------------
...@@ -154,7 +151,7 @@ stg2stg stg_todos module_name ppr_style us binds ...@@ -154,7 +151,7 @@ stg2stg stg_todos module_name ppr_style us binds
(if do_verbose_stg2stg then (if do_verbose_stg2stg then
hPutStr stderr (show hPutStr stderr (show
(($$) (text ("*** "++what++":")) (($$) (text ("*** "++what++":"))
(vcat (map (ppr ppr_style) binds2)) (vcat (map (ppr pprDumpStyle) binds2))
)) ))
else return ()) >> else return ()) >>
let let
......
...@@ -61,7 +61,7 @@ lintStgBindings sty whodunnit binds ...@@ -61,7 +61,7 @@ lintStgBindings sty whodunnit binds
ptext SLIT("*** Stg Lint Errors: in "),text whodunnit, ptext SLIT(" ***"), ptext SLIT("*** Stg Lint Errors: in "),text whodunnit, ptext SLIT(" ***"),
msg sty, msg sty,
ptext SLIT("*** Offending Program ***"), ptext SLIT("*** Offending Program ***"),
vcat (map (pprPlainStgBinding sty) binds), pprStgBindings sty binds,
ptext SLIT("*** End of Offense ***")]) ptext SLIT("*** End of Offense ***")])
where where
lint_binds :: [StgBinding] -> LintM () lint_binds :: [StgBinding] -> LintM ()
......
...@@ -30,7 +30,7 @@ module StgSyn ( ...@@ -30,7 +30,7 @@ module StgSyn (
SYN_IE(StgBinding), SYN_IE(StgExpr), SYN_IE(StgRhs), SYN_IE(StgBinding), SYN_IE(StgExpr), SYN_IE(StgRhs),
SYN_IE(StgCaseAlts), SYN_IE(StgCaseDefault), SYN_IE(StgCaseAlts), SYN_IE(StgCaseDefault),
pprPlainStgBinding, pprStgBinding, pprStgBindings,
getArgPrimRep, getArgPrimRep,
isLitLitArg, isLitLitArg,
stgArity, stgArity,
...@@ -498,18 +498,18 @@ Robin Popplestone asked for semi-colon separators on STG binds; here's ...@@ -498,18 +498,18 @@ Robin Popplestone asked for semi-colon separators on STG binds; here's
hoping he likes terminators instead... Ditto for case alternatives. hoping he likes terminators instead... Ditto for case alternatives.
\begin{code} \begin{code}
pprStgBinding :: (Outputable bndr, Outputable bdee, Ord bdee) => pprGenStgBinding :: (Outputable bndr, Outputable bdee, Ord bdee) =>
PprStyle -> GenStgBinding bndr bdee -> Doc PprStyle -> GenStgBinding bndr bdee -> Doc
pprStgBinding sty (StgNonRec bndr rhs) pprGenStgBinding sty (StgNonRec bndr rhs)
= hang (hsep [ppr sty bndr, equals]) = hang (hsep [ppr sty bndr, equals])
4 ((<>) (ppr sty rhs) semi) 4 ((<>) (ppr sty rhs) semi)
pprStgBinding sty (StgCoerceBinding bndr occ) pprGenStgBinding sty (StgCoerceBinding bndr occ)
= hang (hsep [ppr sty bndr, equals, ptext SLIT("{-Coerce-}")]) = hang (hsep [ppr sty bndr, equals, ptext SLIT("{-Coerce-}")])
4 ((<>) (ppr sty occ) semi) 4 ((<>) (ppr sty occ) semi)
pprStgBinding sty (StgRec pairs) pprGenStgBinding sty (StgRec pairs)
= vcat ((ifPprDebug sty (ptext SLIT("{- StgRec (begin) -}"))) : = vcat ((ifPprDebug sty (ptext SLIT("{- StgRec (begin) -}"))) :
(map (ppr_bind sty) pairs) ++ [(ifPprDebug sty (ptext SLIT("{- StgRec (end) -}")))]) (map (ppr_bind sty) pairs) ++ [(ifPprDebug sty (ptext SLIT("{- StgRec (end) -}")))])
where where
...@@ -517,8 +517,11 @@ pprStgBinding sty (StgRec pairs) ...@@ -517,8 +517,11 @@ pprStgBinding sty (StgRec pairs)
= hang (hsep [ppr sty bndr, equals]) = hang (hsep [ppr sty bndr, equals])
4 ((<>) (ppr sty expr) semi) 4 ((<>) (ppr sty expr) semi)
pprPlainStgBinding :: PprStyle -> StgBinding -> Doc pprStgBinding :: PprStyle -> StgBinding -> Doc
pprPlainStgBinding sty b = pprStgBinding sty b pprStgBinding sty bind = pprGenStgBinding sty bind
pprStgBindings :: PprStyle -> [StgBinding] -> Doc
pprStgBindings sty binds = vcat (map (pprGenStgBinding sty) binds)
\end{code} \end{code}
\begin{code} \begin{code}
...@@ -527,7 +530,7 @@ instance (Outputable bdee) => Outputable (GenStgArg bdee) where ...@@ -527,7 +530,7 @@ instance (Outputable bdee) => Outputable (GenStgArg bdee) where
instance (Outputable bndr, Outputable bdee, Ord bdee) instance (Outputable bndr, Outputable bdee, Ord bdee)
=> Outputable (GenStgBinding bndr bdee) where => Outputable (GenStgBinding bndr bdee) where
ppr = pprStgBinding ppr = pprGenStgBinding
instance (Outputable bndr, Outputable bdee, Ord bdee) instance (Outputable bndr, Outputable bdee, Ord bdee)
=> Outputable (GenStgExpr bndr bdee) where => Outputable (GenStgExpr bndr bdee) where
...@@ -594,17 +597,17 @@ pprStgExpr sty (StgLet (StgNonRec bndr (StgRhsClosure cc bi free_vars upd_flag a ...@@ -594,17 +597,17 @@ pprStgExpr sty (StgLet (StgNonRec bndr (StgRhsClosure cc bi free_vars upd_flag a
pprStgExpr sty (StgLet bind expr@(StgLet _ _)) pprStgExpr sty (StgLet bind expr@(StgLet _ _))
= ($$) = ($$)
(sep [hang (ptext SLIT("let {")) 2 (hsep [pprStgBinding sty bind, ptext SLIT("} in")])]) (sep [hang (ptext SLIT("let {")) 2 (hsep [pprGenStgBinding sty bind, ptext SLIT("} in")])])
(ppr sty expr) (ppr sty expr)
-- general case -- general case
pprStgExpr sty (StgLet bind expr) pprStgExpr sty (StgLet bind expr)
= sep [hang (ptext SLIT("let {")) 2 (pprStgBinding sty bind), = sep [hang (ptext SLIT("let {")) 2 (pprGenStgBinding sty bind),
hang (ptext SLIT("} in ")) 2 (ppr sty expr)] hang (ptext SLIT("} in ")) 2 (ppr sty expr)]
pprStgExpr sty (StgLetNoEscape lvs_whole lvs_rhss bind expr) pprStgExpr sty (StgLetNoEscape lvs_whole lvs_rhss bind expr)
= sep [hang (ptext SLIT("let-no-escape {")) = sep [hang (ptext SLIT("let-no-escape {"))
2 (pprStgBinding sty bind), 2 (pprGenStgBinding sty bind),
hang ((<>) (ptext SLIT("} in ")) hang ((<>) (ptext SLIT("} in "))
(ifPprDebug sty ( (ifPprDebug sty (
nest 4 ( nest 4 (
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment