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/CmmExpr.hs | |
parent | bb7d711c4bb32096df938b30e1c455bc95420db5 (diff) | |
download | haskell-daa2d5e3f2347677dea54d2b6853e8832132f6a8.tar.gz |
a bit more UNPACKing
Diffstat (limited to 'compiler/cmm/CmmExpr.hs')
-rw-r--r-- | compiler/cmm/CmmExpr.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/cmm/CmmExpr.hs b/compiler/cmm/CmmExpr.hs index 1a9382d5eb..3b6fec6925 100644 --- a/compiler/cmm/CmmExpr.hs +++ b/compiler/cmm/CmmExpr.hs @@ -43,10 +43,11 @@ import qualified Data.Set as Set data CmmExpr = CmmLit CmmLit -- Literal - | CmmLoad !CmmExpr !CmmType -- Read memory location + | CmmLoad !CmmExpr !CmmType -- Read memory location | CmmReg !CmmReg -- Contents of register | CmmMachOp MachOp [CmmExpr] -- Machine operation (+, -, *, etc.) - | CmmStackSlot Area Int -- addressing expression of a stack slot + | CmmStackSlot Area {-# UNPACK #-} !Int + -- addressing expression of a stack slot | CmmRegOff !CmmReg Int -- CmmRegOff reg i -- ** is shorthand only, meaning ** @@ -71,7 +72,7 @@ data CmmReg -- or the stack space where function arguments and results are passed. data Area = Old -- See Note [Old Area] - | Young BlockId -- Invariant: must be a continuation BlockId + | Young {-# UNPACK #-} !BlockId -- Invariant: must be a continuation BlockId -- See Note [Continuation BlockId] in CmmNode. deriving (Eq, Ord) @@ -111,7 +112,7 @@ data CmmLit -- position-independent code. | CmmLabelDiffOff CLabel CLabel Int -- label1 - label2 + offset - | CmmBlock BlockId -- Code label + | CmmBlock {-# UNPACK #-} !BlockId -- Code label -- Invariant: must be a continuation BlockId -- See Note [Continuation BlockId] in CmmNode. |