ghc-7.0.3: The GHC API

ClosureInfo

# Documentation

data ClosureInfo Source

Constructors

ClosureInfo |

Fields

closureName :: !Name
closureLFInfo :: !LambdaFormInfo
closureSMRep :: !SMRep
closureSRT :: !C_SRT
closureType :: !Type
closureDescr :: !String

ConInfo |

Fields

closureCon :: !DataCon
closureSMRep :: !SMRep

data LambdaFormInfo Source

Constructors

LFReEntrant TopLevelFlag !Int !Bool ArgDescr |
LFCon DataCon |
LFThunk TopLevelFlag !Bool !Bool StandardFormInfo !Bool |
LFUnknown !Bool |
LFLetNoEscape !Int |
LFBlackHole CLabel |

data StandardFormInfo Source

Constructors

NonStandardThunk |
SelectorThunk WordOff |
ApThunk Int |

data SMRep Source

data ArgDescr Source

Constructors

ArgSpec !StgHalfWord |
ArgGen Liveness |

data Liveness Source

Constructors

SmallLiveness StgWord |
BigLiveness CLabel |

data C_SRT Source

Constructors

NoC_SRT |
C_SRT !CLabel !WordOff !StgHalfWord |

Instances

Eq C_SRT |
Outputable C_SRT |

needsSRT :: C_SRT -> Bool Source

mkLFThunk :: Type -> TopLevelFlag -> [Var] -> UpdateFlag -> LambdaFormInfo Source

mkLFReEntrant :: TopLevelFlag -> [Id] -> [Id] -> ArgDescr -> LambdaFormInfo Source

mkConLFInfo :: DataCon -> LambdaFormInfo Source

mkSelectorLFInfo :: Id -> WordOff -> Bool -> LambdaFormInfo Source

mkApLFInfo :: Id -> UpdateFlag -> Int -> LambdaFormInfo Source

mkLFImported :: Id -> LambdaFormInfo Source

mkLFArgument :: Id -> LambdaFormInfo Source

mkLFLetNoEscape :: Int -> LambdaFormInfo Source

mkClosureInfo :: Bool -> Id -> LambdaFormInfo -> Int -> Int -> C_SRT -> String -> ClosureInfo Source

mkConInfo :: Bool -> DataCon -> Int -> Int -> ClosureInfo Source

maybeIsLFCon :: LambdaFormInfo -> Maybe DataCon Source

closureSize :: ClosureInfo -> WordOff Source

closureNonHdrSize :: ClosureInfo -> WordOff Source

closureGoodStuffSize :: ClosureInfo -> WordOff Source

closurePtrsSize :: ClosureInfo -> WordOff Source

slopSize :: ClosureInfo -> WordOff Source

infoTableLabelFromCI :: ClosureInfo -> CafInfo -> CLabel Source

closureLabelFromCI :: ClosureInfo -> CafInfo -> CLabel Source

isLFThunk :: LambdaFormInfo -> Bool Source

closureUpdReqd :: ClosureInfo -> Bool Source

closureNeedsUpdSpace :: ClosureInfo -> Bool Source

closureIsThunk :: ClosureInfo -> Bool Source

closureSingleEntry :: ClosureInfo -> Bool Source

closureReEntrant :: ClosureInfo -> Bool Source

isConstrClosure_maybe :: ClosureInfo -> Maybe DataCon Source

closureFunInfo :: ClosureInfo -> Maybe (Int, ArgDescr)Source

isStandardFormThunk :: LambdaFormInfo -> Bool Source

isKnownFun :: LambdaFormInfo -> Bool Source

funTag :: ClosureInfo -> Int Source

funTagLFInfo :: LambdaFormInfo -> Int Source

tagForArity :: Int -> Maybe Int Source

enterIdLabel :: Name -> CafInfo -> CLabel Source

enterLocalIdLabel :: Name -> CafInfo -> CLabel Source

enterReturnPtLabel :: Unique -> CLabel Source

nodeMustPointToIt :: LambdaFormInfo -> Bool Source

data CallMethod Source

Constructors

EnterIt |
JumpToIt CLabel |
ReturnIt |
ReturnCon DataCon |
SlowCall |
DirectEntry CLabel Int |

getCallMethod :: DynFlags -> Name -> CafInfo -> LambdaFormInfo -> Int -> CallMethod Source

blackHoleOnEntry :: DynFlags -> ClosureInfo -> Bool Source

staticClosureRequired :: Name -> StgBinderInfo -> LambdaFormInfo -> Bool Source

getClosureType :: Bool -> WordOff -> LambdaFormInfo -> ClosureType Source

isToplevClosure :: ClosureInfo -> Bool Source

closureValDescr :: ClosureInfo -> String Source

closureTypeDescr :: ClosureInfo -> String Source

isStaticClosure :: ClosureInfo -> Bool Source

cafBlackHoleClosureInfo :: ClosureInfo -> ClosureInfo Source

staticClosureNeedsLink :: ClosureInfo -> Bool Source