summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorEdward Z. Yang <ezyang@mit.edu>2011-04-04 12:57:30 +0100
committerEdward Z. Yang <ezyang@mit.edu>2011-04-04 14:23:55 +0100
commitfdc606f562759bf48aef986790ced951f2c1a082 (patch)
tree5215bba3476e6b9e4412f520d5c8dcae50e852bb /compiler/codeGen
parent577c006de0364a9c313b40cd00e744af1908c8e3 (diff)
downloadhaskell-fdc606f562759bf48aef986790ced951f2c1a082.tar.gz
Minor documentation improvement about pointer tagging.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmClosure.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/codeGen/StgCmmClosure.hs b/compiler/codeGen/StgCmmClosure.hs
index fe09f6851b..d6177438a4 100644
--- a/compiler/codeGen/StgCmmClosure.hs
+++ b/compiler/codeGen/StgCmmClosure.hs
@@ -304,13 +304,15 @@ type DynTag = Int -- The tag on a *pointer*
{- Note [Data constructor dynamic tags]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The family size of a data type (the number of constructors)
-can be either:
+The family size of a data type (the number of constructors
+or the arity of a function) can be either:
* small, if the family size < 2**tag_bits
* big, otherwise.
Small families can have the constructor tag in the tag bits.
-Big families only use the tag value 1 to represent evaluatedness. -}
+Big families only use the tag value 1 to represent evaluatedness.
+We don't have very many tag bits: for example, we have 2 bits on
+x86-32 and 3 bits on x86-64. -}
isSmallFamily :: Int -> Bool
isSmallFamily fam_size = fam_size <= mAX_PTR_TAG