ghc-9.0.0.20201227: The GHC API
Safe HaskellNone
LanguageHaskell2010

GHC.Cmm

Synopsis

Cmm top-level datatypes

type CmmGroup = GenCmmGroup CmmStatics CmmTopInfo CmmGraph Source #

Cmm group before SRT generation

type RawCmmGroup = GenCmmGroup RawCmmStatics (LabelMap RawCmmStatics) CmmGraph Source #

Raw cmm group (TODO (osa): not sure what that means)

type GenCmmGroup d h g = [GenCmmDecl d h g] Source #

data GenCmmDecl d h g Source #

A top-level chunk, abstracted over the type of the contents of the basic blocks (Cmm or instructions are the likely instantiations).

Constructors

CmmProc h CLabel [GlobalReg] g 
CmmData Section d 

Instances

Instances details
(Outputable d, Outputable info, Outputable i) => Outputable (GenCmmDecl d info i) # 
Instance details

Defined in GHC.Cmm.Ppr.Decl

Methods

ppr :: GenCmmDecl d info i -> SDoc Source #

pprPrec :: Rational -> GenCmmDecl d info i -> SDoc Source #

data GenCmmGraph n Source #

Constructors

CmmGraph 

Fields

Instances

Instances details
Outputable CmmGraph # 
Instance details

Defined in GHC.Cmm.Ppr

data GenCmmStatics (rawOnly :: Bool) where Source #

Constructors

CmmStatics :: CLabel -> CmmInfoTable -> CostCentreStack -> [CmmLit] -> GenCmmStatics 'False 
CmmStaticsRaw :: CLabel -> [CmmStatic] -> GenCmmStatics a

Static data, after SRTs are generated

Instances

Instances details
Outputable (GenCmmStatics a) # 
Instance details

Defined in GHC.Cmm.Ppr.Decl

data CmmStatic Source #

Constructors

CmmStaticLit CmmLit

a literal value, size given by cmmLitRep of the literal.

CmmUninitialised Int

uninitialised data, N bytes long

CmmString ByteString

string of 8-bit values only, not zero terminated.

CmmFileEmbed FilePath

an embedded binary file

Instances

Instances details
Outputable CmmStatic # 
Instance details

Defined in GHC.Cmm.Ppr.Decl

sectionProtection :: Section -> SectionProtection Source #

Should a data in this section be considered constant at runtime

Blocks containing lists

data GenBasicBlock i Source #

Constructors

BasicBlock BlockId [i] 

Instances

Instances details
Outputable instr => Outputable (GenBasicBlock instr) # 
Instance details

Defined in GHC.Cmm

blockId :: GenBasicBlock i -> BlockId Source #

The branch block id is that of the first block in the branch, which is that branch's entry point

newtype ListGraph i Source #

Constructors

ListGraph [GenBasicBlock i] 

Instances

Instances details
Outputable instr => Outputable (ListGraph instr) # 
Instance details

Defined in GHC.Cmm

Methods

ppr :: ListGraph instr -> SDoc Source #

pprPrec :: Rational -> ListGraph instr -> SDoc Source #

Info Tables

data CmmTopInfo Source #

CmmTopInfo is attached to each CmmDecl (see defn of CmmGroup), and contains the extra info (beyond the executable code) that belongs to that CmmDecl.

Instances

Instances details
Outputable CmmTopInfo # 
Instance details

Defined in GHC.Cmm.Ppr

data CmmStackInfo Source #

Constructors

StackInfo 

Instances

Instances details
Outputable CmmStackInfo # 
Instance details

Defined in GHC.Cmm.Ppr

data CmmInfoTable Source #

Info table as a haskell data type

Instances

Instances details
Outputable CmmInfoTable # 
Instance details

Defined in GHC.Cmm.Ppr.Decl

data ClosureTypeInfo Source #

Instances

Instances details
Outputable ClosureTypeInfo # 
Instance details

Defined in GHC.Runtime.Heap.Layout

Statements, expressions and types