summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmExpr.hs
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-12-19 15:59:56 +0000
committerSimon Marlow <marlowsd@gmail.com>2011-12-19 15:59:56 +0000
commitab67c2a4c0ae4b6aeb40fe7569a95c6a3a611c59 (patch)
tree416ac322edb7b0551c09d8e2cc9985312abd4652 /compiler/cmm/CmmExpr.hs
parentb4018aaaebe4250e78cdcb245466fdcce8918abf (diff)
downloadhaskell-ab67c2a4c0ae4b6aeb40fe7569a95c6a3a611c59.tar.gz
More codegen refactoring with simonpj
Diffstat (limited to 'compiler/cmm/CmmExpr.hs')
-rw-r--r--compiler/cmm/CmmExpr.hs9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/cmm/CmmExpr.hs b/compiler/cmm/CmmExpr.hs
index 885639b874..9f651717b2 100644
--- a/compiler/cmm/CmmExpr.hs
+++ b/compiler/cmm/CmmExpr.hs
@@ -75,7 +75,8 @@ data Area
data AreaId
= Old -- See Note [Old Area]
- | Young BlockId
+ | Young BlockId -- Invariant: must be a continuation BlockId
+ -- See Note [Continuation BlockId] in CmmNode.
deriving (Eq, Ord)
{- Note [Old Area]
@@ -120,7 +121,11 @@ data CmmLit
-- It is also used inside the NCG during when generating
-- position-independent code.
| CmmLabelDiffOff CLabel CLabel Int -- label1 - label2 + offset
- | CmmBlock BlockId -- Code label
+
+ | CmmBlock BlockId -- Code label
+ -- Invariant: must be a continuation BlockId
+ -- See Note [Continuation BlockId] in CmmNode.
+
| CmmHighStackMark -- stands for the max stack space used during a procedure
deriving Eq