Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- 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 (LabelMap CmmStatics) CmmGraph
- type RawCmmGroup = GenCmmGroup CmmStatics (LabelMap CmmStatics) CmmGraph
- data Section = Section SectionType CLabel
- data SectionType
- data CmmStatics = Statics CLabel [CmmStatic]
- data CmmStatic
- data SectionProtection
- sectionProtection :: Section -> SectionProtection
- data GenBasicBlock i = BasicBlock BlockId [i]
- blockId :: GenBasicBlock i -> BlockId
- newtype ListGraph i = ListGraph [GenBasicBlock i]
- pprBBlock :: Outputable stmt => GenBasicBlock stmt -> SDoc
- data CmmTopInfo = TopInfo {}
- data CmmStackInfo = StackInfo {}
- data CmmInfoTable = CmmInfoTable {}
- topInfoTable :: GenCmmDecl a CmmTopInfo (GenCmmGraph n) -> Maybe CmmInfoTable
- data ClosureTypeInfo
- = Constr ConTagZ ConstrDescription
- | Fun FunArity ArgDescr
- | Thunk
- | ThunkSelector SelectorOffset
- | BlackHole
- | IndStatic
- data ProfilingInfo
- type ConstrDescription = ByteString
- module CmmNode
- module CmmExpr
Cmm top-level datatypes
type CmmProgram = [CmmGroup] Source #
type GenCmmGroup d h g = [GenCmmDecl d h g] Source #
type CmmDecl = GenCmmDecl CmmStatics CmmTopInfo CmmGraph 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).
Instances
(Outputable d, Outputable info, Outputable i) => Outputable (GenCmmDecl d info i) # | |
Defined in PprCmmDecl |
type CmmGraph = GenCmmGraph CmmNode Source #
data GenCmmGraph n Source #
type RawCmmDecl = GenCmmDecl CmmStatics (LabelMap CmmStatics) CmmGraph Source #
data SectionType Source #
Text | |
Data | |
ReadOnlyData | |
RelocatableReadOnlyData | |
UninitialisedData | |
ReadOnlyData16 | |
CString | |
OtherSection String |
Instances
data CmmStatics Source #
Instances
Outputable CmmStatics # | |
Defined in PprCmmDecl |
data SectionProtection Source #
Instances
Eq SectionProtection # | |
Defined in Cmm (==) :: SectionProtection -> SectionProtection -> Bool # (/=) :: SectionProtection -> SectionProtection -> Bool # |
sectionProtection :: Section -> SectionProtection Source #
Should a data in this section be considered constant at runtime
Blocks containing lists
data GenBasicBlock i Source #
BasicBlock BlockId [i] |
Instances
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
pprBBlock :: Outputable stmt => GenBasicBlock stmt -> 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
data CmmStackInfo Source #
Instances
data CmmInfoTable Source #
Info table as a haskell data type
Instances
Outputable CmmInfoTable # | |
Defined in PprCmmDecl |
topInfoTable :: GenCmmDecl a CmmTopInfo (GenCmmGraph n) -> Maybe CmmInfoTable Source #
data ClosureTypeInfo Source #
Constr ConTagZ ConstrDescription | |
Fun FunArity ArgDescr | |
Thunk | |
ThunkSelector SelectorOffset | |
BlackHole | |
IndStatic |
Instances
type ConstrDescription = ByteString Source #
Statements, expressions and types
module CmmNode
module CmmExpr