Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data CmmCgInfos = CmmCgInfos {
- cgNonCafs :: !NonCaffySet
- cgLFInfos :: !ModuleLFInfos
- cgIPEStub :: !CStub
- data LambdaFormInfo
- type ModuleLFInfos = NameEnv LambdaFormInfo
- data StandardFormInfo
- type DoSCCProfiling = Bool
- type DoExtDynRefs = Bool
Documentation
data CmmCgInfos Source #
Codegen-generated Id infos, to be passed to downstream via interfaces.
This stuff is for optimization purposes only, they're not compulsory.
- When CafInfo of an imported Id is not known it's safe to treat it as CAFFY.
- When LambdaFormInfo of an imported Id is not known it's safe to treat it as `LFUnknown True` (which just says "it could be anything" and we do slow entry).
See also Note [Conveying CAF-info and LFInfo between modules] above.
CmmCgInfos | |
|
data LambdaFormInfo Source #
Information about an identifier, from the code generator's point of view. Every identifier is bound to a LambdaFormInfo in the environment, which gives the code generator enough info to be able to tail call or return that identifier.
LFReEntrant !TopLevelFlag !RepArity !Bool !ArgDescr | |
LFThunk !TopLevelFlag !Bool !Bool !StandardFormInfo !Bool | |
LFCon !DataCon | |
LFUnknown !Bool | |
LFUnlifted | |
LFLetNoEscape |
Instances
Outputable LambdaFormInfo Source # | |
Defined in GHC.StgToCmm.Types ppr :: LambdaFormInfo -> SDoc Source # |
type ModuleLFInfos = NameEnv LambdaFormInfo Source #
Maps names in the current module to their LambdaFormInfos
data StandardFormInfo Source #
StandardFormInfo tells whether this thunk has one of a small number of standard forms
Instances
Outputable StandardFormInfo Source # | |
Defined in GHC.StgToCmm.Types ppr :: StandardFormInfo -> SDoc Source # | |
Eq StandardFormInfo Source # | |
Defined in GHC.StgToCmm.Types (==) :: StandardFormInfo -> StandardFormInfo -> Bool # (/=) :: StandardFormInfo -> StandardFormInfo -> Bool # |
type DoSCCProfiling = Bool Source #
type DoExtDynRefs = Bool Source #