| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
GHC.StgToCmm.Types
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.
Constructors
| CmmCgInfos | |
Fields
| |
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.
Constructors
| 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 Methods 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
Constructors
| NonStandardThunk | |
| SelectorThunk !WordOff | |
| ApThunk !RepArity |
Instances
| Outputable StandardFormInfo Source # | |
Defined in GHC.StgToCmm.Types Methods ppr :: StandardFormInfo -> SDoc Source # | |
| Eq StandardFormInfo Source # | |
Defined in GHC.StgToCmm.Types Methods (==) :: StandardFormInfo -> StandardFormInfo -> Bool # (/=) :: StandardFormInfo -> StandardFormInfo -> Bool # | |
type DoSCCProfiling = Bool Source #
type DoExtDynRefs = Bool Source #