summaryrefslogtreecommitdiff
path: root/compiler/cmm/PprCmm.hs
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2015-03-05 19:40:11 +0100
committerJoachim Breitner <mail@joachim-breitner.de>2015-03-05 19:40:11 +0100
commitde24b276ffa5b21addcaa1a14d5b4c31e9d5ea2f (patch)
tree7a79d1fb997a317afe1def920c41e7b8f3c38dd9 /compiler/cmm/PprCmm.hs
parent1ec5c8a1b3db46026d159f54f9dad0d77a6f9b33 (diff)
downloadhaskell-de24b276ffa5b21addcaa1a14d5b4c31e9d5ea2f.tar.gz
Print range of a switch in PprCmm
Diffstat (limited to 'compiler/cmm/PprCmm.hs')
-rw-r--r--compiler/cmm/PprCmm.hs10
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/cmm/PprCmm.hs b/compiler/cmm/PprCmm.hs
index 8948c90e1a..dac6c46f1d 100644
--- a/compiler/cmm/PprCmm.hs
+++ b/compiler/cmm/PprCmm.hs
@@ -229,11 +229,12 @@ pprNode node = pp_node <+> pp_debug
]
CmmSwitch expr ids ->
- hang (hcat [ ptext (sLit "switch ")
+ hang (hsep [ ptext (sLit "switch")
+ , range
, if isTrivialCmmExpr expr
then ppr expr
else parens (ppr expr)
- , ptext (sLit " {")
+ , ptext (sLit "{")
])
4 (vcat (map ppCase cases) $$ def) $$ rbrace
where
@@ -250,6 +251,11 @@ pprNode node = pp_node <+> pp_debug
]
| otherwise = empty
+ range | Just (lo,hi) <- switchTargetsRange ids
+ = brackets $ hsep [integer lo, ptext (sLit ".."), integer hi]
+ | otherwise
+ = empty
+
CmmCall tgt k regs out res updfr_off ->
hcat [ ptext (sLit "call"), space
, pprFun tgt, parens (interpp'SP regs), space