Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type WordOff = Int
- type ByteOff = Int
- wordsToBytes :: Num a => DynFlags -> a -> a
- bytesToWordsRoundUp :: DynFlags -> ByteOff -> WordOff
- roundUpToWords :: DynFlags -> ByteOff -> ByteOff
- data StgWord
- fromStgWord :: StgWord -> Integer
- toStgWord :: DynFlags -> Integer -> StgWord
- data StgHalfWord
- fromStgHalfWord :: StgHalfWord -> Integer
- toStgHalfWord :: DynFlags -> Integer -> StgHalfWord
- hALF_WORD_SIZE :: DynFlags -> ByteOff
- hALF_WORD_SIZE_IN_BITS :: DynFlags -> Int
- data SMRep
- type IsStatic = Bool
- data ClosureTypeInfo
- = Constr ConstrTag ConstrDescription
- | Fun FunArity ArgDescr
- | Thunk
- | ThunkSelector SelectorOffset
- | BlackHole
- | IndStatic
- data ArgDescr
- type Liveness = [Bool]
- type ConstrDescription = [Word8]
- mkHeapRep :: DynFlags -> IsStatic -> WordOff -> WordOff -> ClosureTypeInfo -> SMRep
- blackHoleRep :: SMRep
- indStaticRep :: SMRep
- mkStackRep :: [Bool] -> SMRep
- mkRTSRep :: Int -> SMRep -> SMRep
- arrPtrsRep :: DynFlags -> WordOff -> SMRep
- smallArrPtrsRep :: WordOff -> SMRep
- arrWordsRep :: DynFlags -> ByteOff -> SMRep
- isStaticRep :: SMRep -> IsStatic
- isConRep :: SMRep -> Bool
- isThunkRep :: SMRep -> Bool
- isFunRep :: SMRep -> Bool
- isStaticNoCafCon :: SMRep -> Bool
- isStackRep :: SMRep -> Bool
- heapClosureSizeW :: DynFlags -> SMRep -> WordOff
- fixedHdrSizeW :: DynFlags -> WordOff
- arrWordsHdrSize :: DynFlags -> ByteOff
- arrWordsHdrSizeW :: DynFlags -> WordOff
- arrPtrsHdrSize :: DynFlags -> ByteOff
- arrPtrsHdrSizeW :: DynFlags -> WordOff
- profHdrSize :: DynFlags -> WordOff
- thunkHdrSize :: DynFlags -> WordOff
- nonHdrSize :: DynFlags -> SMRep -> ByteOff
- nonHdrSizeW :: SMRep -> WordOff
- smallArrPtrsHdrSize :: DynFlags -> ByteOff
- smallArrPtrsHdrSizeW :: DynFlags -> WordOff
- hdrSize :: DynFlags -> SMRep -> ByteOff
- hdrSizeW :: DynFlags -> SMRep -> WordOff
- fixedHdrSize :: DynFlags -> ByteOff
- rtsClosureType :: SMRep -> Int
- rET_SMALL :: Int
- rET_BIG :: Int
- aRG_GEN :: Int
- aRG_GEN_BIG :: Int
- card :: DynFlags -> Int -> Int
- cardRoundUp :: DynFlags -> Int -> Int
- cardTableSizeB :: DynFlags -> Int -> ByteOff
- cardTableSizeW :: DynFlags -> Int -> WordOff
- pprWord8String :: [Word8] -> SDoc
- stringToWord8s :: String -> [Word8]
Words and bytes
wordsToBytes :: Num a => DynFlags -> a -> a #
Convert the given number of words to a number of bytes.
This function morally has type WordOff -> ByteOff
, but uses Num
a
to allow for overloading.
bytesToWordsRoundUp :: DynFlags -> ByteOff -> WordOff #
First round the given byte count up to a multiple of the machine's word size and then convert the result to words.
roundUpToWords :: DynFlags -> ByteOff -> ByteOff #
Round up the given byte count to the next byte count that's a multiple of the machine's word size.
fromStgWord :: StgWord -> Integer #
data StgHalfWord #
fromStgHalfWord :: StgHalfWord -> Integer #
toStgHalfWord :: DynFlags -> Integer -> StgHalfWord #
hALF_WORD_SIZE :: DynFlags -> ByteOff #
hALF_WORD_SIZE_IN_BITS :: DynFlags -> Int #
Closure repesentation
A description of the layout of a closure. Corresponds directly to the closure types in includesrtsstorage/ClosureTypes.h.
True = This is a static closure. Affects how we garbage-collect it. Static closure have an extra static link field at the end. Constructors do not have a static variant; see Note [static constructors]
data ClosureTypeInfo #
Constr ConstrTag ConstrDescription | |
Fun FunArity ArgDescr | |
Thunk | |
ThunkSelector SelectorOffset | |
BlackHole | |
IndStatic |
type ConstrDescription = [Word8] #
Construction
blackHoleRep :: SMRep #
indStaticRep :: SMRep #
mkStackRep :: [Bool] -> SMRep #
arrPtrsRep :: DynFlags -> WordOff -> SMRep #
smallArrPtrsRep :: WordOff -> SMRep #
arrWordsRep :: DynFlags -> ByteOff -> SMRep #
Predicates
isStaticRep :: SMRep -> IsStatic #
isThunkRep :: SMRep -> Bool #
isStaticNoCafCon :: SMRep -> Bool #
isStackRep :: SMRep -> Bool #
Size-related things
heapClosureSizeW :: DynFlags -> SMRep -> WordOff #
The total size of the closure, in words.
fixedHdrSizeW :: DynFlags -> WordOff #
Size of a closure header (StgHeader in includesrtsstorage/Closures.h)
arrWordsHdrSize :: DynFlags -> ByteOff #
arrWordsHdrSizeW :: DynFlags -> WordOff #
arrPtrsHdrSize :: DynFlags -> ByteOff #
arrPtrsHdrSizeW :: DynFlags -> WordOff #
profHdrSize :: DynFlags -> WordOff #
Size of the profiling part of a closure header (StgProfHeader in includesrtsstorage/Closures.h)
thunkHdrSize :: DynFlags -> WordOff #
nonHdrSize :: DynFlags -> SMRep -> ByteOff #
nonHdrSizeW :: SMRep -> WordOff #
smallArrPtrsHdrSize :: DynFlags -> ByteOff #
smallArrPtrsHdrSizeW :: DynFlags -> WordOff #
fixedHdrSize :: DynFlags -> ByteOff #
RTS closure types
rtsClosureType :: SMRep -> Int #
Derives the RTS closure type from an SMRep
aRG_GEN_BIG :: Int #
Arrays
cardRoundUp :: DynFlags -> Int -> Int #
Convert a number of elements to a number of cards, rounding up
cardTableSizeB :: DynFlags -> Int -> ByteOff #
The size of a card table, in bytes
cardTableSizeW :: DynFlags -> Int -> WordOff #
The size of a card table, in words
Operations over [Word8] strings that don't belong here
pprWord8String :: [Word8] -> SDoc #
stringToWord8s :: String -> [Word8] #