ghc-7.4.2: The GHC API

Safe HaskellNone




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.


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.


data UpdateFrame Source

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


UpdateFrame CmmExpr [CmmExpr] 

data CmmInfoTable Source

Info table as a haskell data type

data ClosureTypeInfo Source


Constr ConstrTag ConstrDescription 
Fun FunArity ArgDescr 
ThunkSelector SelectorOffset 

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).


CmmProc h CLabel g 
CmmData Section d 

module CmmExpr