ghc-7.4.2: The GHC API

Safe HaskellNone

OldCmm

Synopsis

Documentation

type CmmGroup = GenCmmGroup CmmStatics CmmInfo (ListGraph CmmStmt)

Cmm with the info table as a data type

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

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

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

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

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

Constructors

UpdateFrame CmmExpr [CmmExpr] 

data CmmInfoTable

Info table as a haskell data type

data ClosureTypeInfo

Constructors

Constr ConstrTag ConstrDescription 
Fun FunArity ArgDescr 
Thunk 
ThunkSelector SelectorOffset 
BlackHole 

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

cmmTopMapGraph :: (g -> g') -> GenCmmDecl d h g -> GenCmmDecl d h g'

mapBlockStmts :: (i -> i') -> GenBasicBlock i -> GenBasicBlock i'

data GenCmmDecl d h g

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