Safe Haskell | None |
---|---|
Language | Haskell98 |
- type CmmProgram = [CmmGroup]
- type CmmGroup = GenCmmGroup CmmStatics CmmTopInfo CmmGraph
- type GenCmmGroup d h g = [GenCmmDecl d h g]
- type CmmDecl = GenCmmDecl CmmStatics CmmTopInfo CmmGraph
- data GenCmmDecl d h g
- type CmmGraph = GenCmmGraph CmmNode
- data GenCmmGraph n = CmmGraph {}
- type CmmBlock = Block CmmNode C C
- type RawCmmDecl = GenCmmDecl CmmStatics (BlockEnv CmmStatics) CmmGraph
- type RawCmmGroup = GenCmmGroup CmmStatics (BlockEnv CmmStatics) CmmGraph
- data Section
- data CmmStatics = Statics CLabel [CmmStatic]
- data CmmStatic
- data GenBasicBlock i = BasicBlock BlockId [i]
- blockId :: GenBasicBlock i -> BlockId
- newtype ListGraph i = ListGraph [GenBasicBlock i]
- pprBBlock :: Outputable stmt => GenBasicBlock stmt -> SDoc
- type CmmReplGraph e x = GenCmmReplGraph CmmNode e x
- type GenCmmReplGraph n e x = UniqSM (Maybe (Graph n e x))
- type CmmFwdRewrite f = FwdRewrite UniqSM CmmNode f
- type CmmBwdRewrite f = BwdRewrite UniqSM CmmNode f
- data CmmTopInfo = TopInfo {}
- data CmmStackInfo = StackInfo {}
- data CmmInfoTable = CmmInfoTable {}
- topInfoTable :: GenCmmDecl a CmmTopInfo (GenCmmGraph n) -> Maybe CmmInfoTable
- data ClosureTypeInfo
- = Constr ConstrTag ConstrDescription
- | Fun FunArity ArgDescr
- | Thunk
- | ThunkSelector SelectorOffset
- | BlackHole
- | IndStatic
- data C_SRT
- = NoC_SRT
- | C_SRT !CLabel !WordOff !StgHalfWord
- needsSRT :: C_SRT -> Bool
- data ProfilingInfo
- = NoProfilingInfo
- | ProfilingInfo [Word8] [Word8]
- type ConstrDescription = [Word8]
- module CmmNode
- module CmmExpr
Cmm top-level datatypes
type CmmProgram = [CmmGroup] Source
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).
(Outputable d, Outputable info, Outputable i) => Outputable (GenCmmDecl d info i) |
type CmmGraph = GenCmmGraph CmmNode Source
Blocks containing lists
data GenBasicBlock i Source
BasicBlock BlockId [i] |
Outputable instr => Outputable (GenBasicBlock instr) |
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
Outputable instr => Outputable (ListGraph instr) |
pprBBlock :: Outputable stmt => GenBasicBlock stmt -> SDoc Source
Cmm graphs
type CmmReplGraph e x = GenCmmReplGraph CmmNode e x Source
type GenCmmReplGraph n e x = UniqSM (Maybe (Graph n e x)) Source
type CmmFwdRewrite f = FwdRewrite UniqSM CmmNode f Source
type CmmBwdRewrite f = BwdRewrite UniqSM CmmNode f Source
Info Tables
data CmmTopInfo Source
data CmmStackInfo Source
topInfoTable :: GenCmmDecl a CmmTopInfo (GenCmmGraph n) -> Maybe CmmInfoTable Source
data ClosureTypeInfo Source
Constr ConstrTag ConstrDescription | |
Fun FunArity ArgDescr | |
Thunk | |
ThunkSelector SelectorOffset | |
BlackHole | |
IndStatic |
type ConstrDescription = [Word8] Source
Statements, expressions and types
module CmmNode
module CmmExpr