| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.Cmm.Info
Synopsis
- mkEmptyContInfoTable :: CLabel -> CmmInfoTable
 - cmmToRawCmm :: Logger -> Profile -> Stream IO CmmGroupSRTs a -> IO (Stream IO RawCmmGroup a)
 - srtEscape :: Platform -> StgHalfWord
 - closureInfoPtr :: Platform -> DoAlignSanitisation -> CmmExpr -> CmmExpr
 - entryCode :: Platform -> CmmExpr -> CmmExpr
 - getConstrTag :: Profile -> DoAlignSanitisation -> CmmExpr -> CmmExpr
 - cmmGetClosureType :: Profile -> DoAlignSanitisation -> CmmExpr -> CmmExpr
 - infoTable :: Profile -> CmmExpr -> CmmExpr
 - infoTableConstrTag :: Profile -> CmmExpr -> CmmExpr
 - infoTableSrtBitmap :: Profile -> CmmExpr -> CmmExpr
 - infoTableClosureType :: Profile -> CmmExpr -> CmmExpr
 - infoTablePtrs :: Profile -> CmmExpr -> CmmExpr
 - infoTableNonPtrs :: Profile -> CmmExpr -> CmmExpr
 - funInfoTable :: Profile -> CmmExpr -> CmmExpr
 - funInfoArity :: Profile -> CmmExpr -> CmmExpr
 - stdInfoTableSizeW :: Profile -> WordOff
 - fixedInfoTableSizeW :: WordOff
 - profInfoTableSizeW :: WordOff
 - maxStdInfoTableSizeW :: WordOff
 - maxRetInfoTableSizeW :: WordOff
 - stdInfoTableSizeB :: Profile -> ByteOff
 - conInfoTableSizeB :: Profile -> Int
 - stdSrtBitmapOffset :: Profile -> ByteOff
 - stdClosureTypeOffset :: Profile -> ByteOff
 - stdPtrsOffset :: Profile -> ByteOff
 - stdNonPtrsOffset :: Profile -> ByteOff
 
Documentation
cmmToRawCmm :: Logger -> Profile -> Stream IO CmmGroupSRTs a -> IO (Stream IO RawCmmGroup a) Source #
srtEscape :: Platform -> StgHalfWord Source #
Value of the srt field of an info table when using an StgLargeSRT
closureInfoPtr :: Platform -> DoAlignSanitisation -> CmmExpr -> CmmExpr Source #
Takes a closure pointer and returns the info table pointer
entryCode :: Platform -> CmmExpr -> CmmExpr Source #
Takes an info pointer (the first word of a closure) and returns its entry code
getConstrTag :: Profile -> DoAlignSanitisation -> CmmExpr -> CmmExpr Source #
Takes a closure pointer, and return the *zero-indexed* constructor tag obtained from the info table This lives in the SRT field of the info table (constructors don't need SRTs).
cmmGetClosureType :: Profile -> DoAlignSanitisation -> CmmExpr -> CmmExpr Source #
Takes a closure pointer, and return the closure type obtained from the info table
infoTable :: Profile -> CmmExpr -> CmmExpr Source #
Takes an info pointer (the first word of a closure) and returns a pointer to the first word of the standard-form info table, excluding the entry-code word (if present)
infoTableConstrTag :: Profile -> CmmExpr -> CmmExpr Source #
Takes an info table pointer (from infoTable) and returns the constr tag field of the info table (same as the srt_bitmap field)
infoTableSrtBitmap :: Profile -> CmmExpr -> CmmExpr Source #
Takes an info table pointer (from infoTable) and returns the srt_bitmap field of the info table
infoTableClosureType :: Profile -> CmmExpr -> CmmExpr Source #
Takes an info table pointer (from infoTable) and returns the closure type field of the info table.
funInfoTable :: Profile -> CmmExpr -> CmmExpr Source #
Takes the info pointer of a function, and returns a pointer to the first word of the StgFunInfoExtra struct in the info table.
funInfoArity :: Profile -> CmmExpr -> CmmExpr Source #
Takes the info pointer of a function, returns the function's arity
stdInfoTableSizeW :: Profile -> WordOff Source #
stdInfoTableSizeB :: Profile -> ByteOff Source #
conInfoTableSizeB :: Profile -> Int Source #
stdSrtBitmapOffset :: Profile -> ByteOff Source #
Byte offset of the SRT bitmap half-word which is in the *higher-addressed* part of the type_lit
stdClosureTypeOffset :: Profile -> ByteOff Source #
Byte offset of the closure type half-word
stdPtrsOffset :: Profile -> ByteOff Source #
stdNonPtrsOffset :: Profile -> ByteOff Source #