Which of the following PrimTyCons have a pointer-sized representations
Johan Tibell
johan.tibell at gmail.com
Fri Dec 7 00:47:29 CET 2012
Hi,
As part of some work I'm doing I need to classify all PrimTyCons by
the size of their representation as fields*. I need to classify them
into two classes: pointer-sized (or smaller) and
larger-than-pointer-sized. I've managed to figure out a bunch of them
myself:
Pointer-sized:
addrPrimTyCon
arrayPrimTyCon
byteArrayPrimTyCon -- Represented as a pointer to heap object
arrayArrayPrimTyCon -- Represented as a pointer to heap object
charPrimTyCon
doublePrimTyCon -- Only on 64-bit
floatPrimTyCon
intPrimTyCon
int32PrimTyCon
int64PrimTyCon -- Only on 64-bit
mutableArrayPrimTyCon -- Represented as a pointer to heap object
mutableByteArrayPrimTyCon -- Represented as a pointer to heap object
mutableArrayArrayPrimTyCon -- Represented as a pointer to heap object
wordPrimTyCon
word32PrimTyCon
word64PrimTyCon -- Only on 64-bit
These ones I need help with:
bcoPrimTyCon
weakPrimTyCon
mVarPrimTyCon
tVarPrimTyCon
mutVarPrimTyCon
realWorldTyCon
stablePtrPrimTyCon
stableNamePrimTyCon
statePrimTyCon
threadIdPrimTyCon
anyTyCon
eqPrimTyCon
liftedTypeKindTyCon
unliftedTypeKindTyCon
openTypeKindTyCon
constraintKindTyCon
superKindTyCon
anyKindTyCon
I would appreciate any help classifying the bottom half. I will use
this to implement -funbox-strict-primitive-fields
* For example: while the StgArrWords heap object is a multi-byte
object its representation as a field e.g. in data T = C ByteArray# is
one pointer (to the StgArrWords heap object).
-- Johan
More information about the Glasgow-haskell-users
mailing list