| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
GHC.Cmm
Synopsis
- type CmmProgram = [CmmGroup]
- type CmmGroup = GenCmmGroup CmmStatics CmmTopInfo CmmGraph
- type CmmGroupSRTs = GenCmmGroup RawCmmStatics CmmTopInfo CmmGraph
- type RawCmmGroup = GenCmmGroup RawCmmStatics (LabelMap RawCmmStatics) CmmGraph
- type GenCmmGroup d h g = [GenCmmDecl d h g]
- type CmmDecl = GenCmmDecl CmmStatics CmmTopInfo CmmGraph
- type CmmDeclSRTs = GenCmmDecl RawCmmStatics CmmTopInfo CmmGraph
- data GenCmmDecl d h g
- type CmmGraph = GenCmmGraph CmmNode
- data GenCmmGraph n = CmmGraph {}
- type CmmBlock = Block CmmNode C C
- type RawCmmDecl = GenCmmDecl RawCmmStatics (LabelMap RawCmmStatics) CmmGraph
- data Section = Section SectionType CLabel
- data SectionType
- data GenCmmStatics (rawOnly :: Bool) where
- CmmStatics :: CLabel -> CmmInfoTable -> CostCentreStack -> [CmmLit] -> GenCmmStatics 'False
- CmmStaticsRaw :: CLabel -> [CmmStatic] -> GenCmmStatics a
- type CmmStatics = GenCmmStatics 'False
- type RawCmmStatics = GenCmmStatics 'True
- 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 GHC.Cmm.Node
- module GHC.Cmm.Expr
Cmm top-level datatypes
type CmmProgram = [CmmGroup] #
type CmmGroup = GenCmmGroup CmmStatics CmmTopInfo CmmGraph #
Cmm group before SRT generation
type CmmGroupSRTs = GenCmmGroup RawCmmStatics CmmTopInfo CmmGraph #
Cmm group with SRTs
type RawCmmGroup = GenCmmGroup RawCmmStatics (LabelMap RawCmmStatics) CmmGraph #
Raw cmm group (TODO (osa): not sure what that means)
type GenCmmGroup d h g = [GenCmmDecl d h g] #
type CmmDecl = GenCmmDecl CmmStatics CmmTopInfo CmmGraph #
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).
Instances
| (Outputable d, Outputable info, Outputable i) => Outputable (GenCmmDecl d info i) # | |
Defined in GHC.Cmm.Ppr.Decl | |
type CmmGraph = GenCmmGraph CmmNode #
data GenCmmGraph n #
Constructors
| Section SectionType CLabel |
data SectionType #
Constructors
| Text | |
| Data | |
| ReadOnlyData | |
| RelocatableReadOnlyData | |
| UninitialisedData | |
| ReadOnlyData16 | |
| CString | |
| OtherSection String |
Instances
data GenCmmStatics (rawOnly :: Bool) where #
Constructors
| CmmStatics :: CLabel -> CmmInfoTable -> CostCentreStack -> [CmmLit] -> GenCmmStatics 'False | |
| CmmStaticsRaw :: CLabel -> [CmmStatic] -> GenCmmStatics a | Static data, after SRTs are generated |
Instances
| Outputable (GenCmmStatics a) # | |
Defined in GHC.Cmm.Ppr.Decl | |
type CmmStatics = GenCmmStatics 'False #
type RawCmmStatics = GenCmmStatics 'True #
Constructors
| CmmStaticLit CmmLit | a literal value, size given by cmmLitRep of the literal. |
| CmmUninitialised Int | uninitialised data, N bytes long |
| CmmString ByteString | string of 8-bit values only, not zero terminated. |
| CmmFileEmbed FilePath | an embedded binary file |
data SectionProtection #
Constructors
| ReadWriteSection | |
| ReadOnlySection | |
| WriteProtectedSection |
Instances
| Eq SectionProtection # | |
Defined in GHC.Cmm Methods (==) :: SectionProtection -> SectionProtection -> Bool # (/=) :: SectionProtection -> SectionProtection -> Bool # | |
sectionProtection :: Section -> SectionProtection #
Should a data in this section be considered constant at runtime
Blocks containing lists
data GenBasicBlock i #
Constructors
| BasicBlock BlockId [i] |
Instances
| Outputable instr => Outputable (GenBasicBlock instr) # | |
Defined in GHC.Cmm | |
blockId :: GenBasicBlock i -> BlockId #
The branch block id is that of the first block in the branch, which is that branch's entry point
Constructors
| ListGraph [GenBasicBlock i] |
pprBBlock :: Outputable stmt => GenBasicBlock stmt -> SDoc #
Info Tables
data CmmTopInfo #
CmmTopInfo is attached to each CmmDecl (see defn of CmmGroup), and contains the extra info (beyond the executable code) that belongs to that CmmDecl.
Constructors
| TopInfo | |
Fields | |
Instances
| Outputable CmmTopInfo # | |
Defined in GHC.Cmm.Ppr | |
data CmmStackInfo #
Instances
| Outputable CmmStackInfo # | |
Defined in GHC.Cmm.Ppr | |
data CmmInfoTable #
Info table as a haskell data type
Constructors
| CmmInfoTable | |
Instances
| Outputable CmmInfoTable # | |
Defined in GHC.Cmm.Ppr.Decl | |
topInfoTable :: GenCmmDecl a CmmTopInfo (GenCmmGraph n) -> Maybe CmmInfoTable #
data ClosureTypeInfo #
Constructors
| Constr ConTagZ ConstrDescription | |
| Fun FunArity ArgDescr | |
| Thunk | |
| ThunkSelector SelectorOffset | |
| BlackHole | |
| IndStatic |
Instances
| Outputable ClosureTypeInfo # | |
Defined in GHC.Runtime.Heap.Layout | |
data ProfilingInfo #
Constructors
| NoProfilingInfo | |
| ProfilingInfo ByteString ByteString |
type ConstrDescription = ByteString #
Statements, expressions and types
module GHC.Cmm.Node
module GHC.Cmm.Expr