diff options
author | Simon Marlow <marlowsd@gmail.com> | 2012-03-15 13:07:57 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2012-03-15 13:25:16 +0000 |
commit | daa2d5e3f2347677dea54d2b6853e8832132f6a8 (patch) | |
tree | 809ca9be6b85dd28b9868026c08ddc3598541038 /compiler/cmm/CmmNode.hs | |
parent | bb7d711c4bb32096df938b30e1c455bc95420db5 (diff) | |
download | haskell-daa2d5e3f2347677dea54d2b6853e8832132f6a8.tar.gz |
a bit more UNPACKing
Diffstat (limited to 'compiler/cmm/CmmNode.hs')
-rw-r--r-- | compiler/cmm/CmmNode.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/cmm/CmmNode.hs b/compiler/cmm/CmmNode.hs index 7b8ee55029..cd46794580 100644 --- a/compiler/cmm/CmmNode.hs +++ b/compiler/cmm/CmmNode.hs @@ -35,8 +35,10 @@ import Prelude hiding (succ) ------------------------ -- CmmNode +#define ULabel {-# UNPACK #-} !Label + data CmmNode e x where - CmmEntry :: {-# UNPACK #-} !Label -> CmmNode C O + CmmEntry :: ULabel -> CmmNode C O CmmComment :: FastString -> CmmNode O O @@ -60,11 +62,12 @@ data CmmNode e x where -- bug for what can be put in arguments, see -- Note [Register Parameter Passing] - CmmBranch :: Label -> CmmNode O C -- Goto another block in the same procedure + CmmBranch :: ULabel -> CmmNode O C + -- Goto another block in the same procedure CmmCondBranch :: { -- conditional branch cml_pred :: CmmExpr, - cml_true, cml_false :: Label + cml_true, cml_false :: ULabel } -> CmmNode O C CmmSwitch :: CmmExpr -> [Maybe Label] -> CmmNode O C -- Table branch @@ -122,7 +125,7 @@ data CmmNode e x where tgt :: ForeignTarget, -- call target and convention res :: [CmmFormal], -- zero or more results args :: [CmmActual], -- zero or more arguments; see Note [Register parameter passing] - succ :: Label, -- Label of continuation + succ :: ULabel, -- Label of continuation updfr :: UpdFrameOffset, -- where the update frame is (for building infotable) intrbl:: Bool -- whether or not the call is interruptible } -> CmmNode O C |