diff options
author | Joachim Breitner <mail@joachim-breitner.de> | 2015-03-05 19:40:11 +0100 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2015-03-05 19:40:11 +0100 |
commit | de24b276ffa5b21addcaa1a14d5b4c31e9d5ea2f (patch) | |
tree | 7a79d1fb997a317afe1def920c41e7b8f3c38dd9 /compiler/cmm/PprCmm.hs | |
parent | 1ec5c8a1b3db46026d159f54f9dad0d77a6f9b33 (diff) | |
download | haskell-de24b276ffa5b21addcaa1a14d5b4c31e9d5ea2f.tar.gz |
Print range of a switch in PprCmm
Diffstat (limited to 'compiler/cmm/PprCmm.hs')
-rw-r--r-- | compiler/cmm/PprCmm.hs | 10 |
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 |