ghc-7.4.1: The GHC API

Safe HaskellSafe-Infered

OldCmm

Synopsis

Documentation

type CmmGroup = GenCmmGroup CmmStatics CmmInfo (ListGraph CmmStmt)Source

Cmm with the info table as a data type

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

type RawCmmGroup = GenCmmGroup CmmStatics (Maybe CmmStatics) (ListGraph CmmStmt)Source

Cmm with the info tables converted to a list of CmmStatic along with the info table label. If we are building without tables-next-to-code there will be no statics

INVARIANT: if there is an info table, it has at least one CmmStatic

newtype ListGraph i Source

A control-flow graph represented as a list of extended basic blocks.

Constructors

ListGraph [GenBasicBlock i]

Code, may be empty. The first block is the entry point. The order is otherwise initially unimportant, but at some point the code gen will fix the order.

Instances

data UpdateFrame Source

A frame that is to be pushed before entry to the function. Used to handle update frames.

Constructors

UpdateFrame CmmExpr [CmmExpr] 

data CmmInfoTable Source

Info table as a haskell data type

data ClosureTypeInfo Source

Constructors

Constr ConstrTag ConstrDescription 
Fun FunArity ArgDescr 
Thunk 
ThunkSelector SelectorOffset 
BlackHole 

cmmMapGraph :: (g -> g') -> GenCmmGroup d h g -> GenCmmGroup d h g'Source

cmmTopMapGraph :: (g -> g') -> GenCmmDecl 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 g 
CmmData Section d 

module CmmExpr