ghc-9.0.0.20200925: The GHC API
Safe HaskellNone
LanguageHaskell2010

GHC.StgToCmm.Types

Synopsis

Documentation

data CgInfos 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

CgInfos 

Fields

  • cgNonCafs :: !NonCaffySet

    Exported Non-CAFFY closures in the current module. Everything else is either not exported of CAFFY.

  • cgLFInfos :: !ModuleLFInfos

    LambdaFormInfos of exported closures in the current module.

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.

Instances

Instances details
Outputable LambdaFormInfo # 
Instance details

Defined in GHC.StgToCmm.Types

type ModuleLFInfos = NameEnv LambdaFormInfo Source #

Maps names in the current module to their LambdaFormInfos

type Liveness = [Bool] Source #

We represent liveness bitmaps as a Bitmap (whose internal representation really is a bitmap). These are pinned onto case return vectors to indicate the state of the stack for the garbage collector.

In the compiled program, liveness bitmaps that fit inside a single word (StgWord) are stored as a single word, while larger bitmaps are stored as a pointer to an array of words.

data ArgDescr Source #

An ArgDescr describes the argument pattern of a function

Instances

Instances details
Eq ArgDescr # 
Instance details

Defined in GHC.StgToCmm.Types

Outputable ArgDescr # 
Instance details

Defined in GHC.StgToCmm.Types

data StandardFormInfo Source #

StandardFormInfo tells whether this thunk has one of a small number of standard forms

type WordOff = Int Source #

Word offset, or word count