|
|
|
Description |
The IL module declares all the data structures necessary for generating and writing
IL code.
|
|
Synopsis |
|
|
|
Documentation |
|
data ILDecl |
A Declaration is a top level IL entry
| Constructors | Namespace | | | Class | | | Prim | | | External | | |
|
|
|
type ILName = String |
|
data ILAccess |
Constructors | | Instances | |
|
|
data ILStorage |
Constructors | ILStatic | | ILInstance | | ILVirtual | |
| Instances | |
|
|
data ILClassDecl |
|
|
data ILMethodArg |
|
|
data GType |
common applicative form, function info, node for non-CAF, constructor info,
node for zero arity constructor, primitive function info
| Constructors | GCAF | | GFUN | | GFUN0 | | GCON | | GZCON | | GPRIM | | GEXT | |
| Instances | |
|
|
type CRef = Int |
A constant table maps constant references to constant items
|
|
data Code |
code can be several things:
either a simple list of instructions or a code flow graph
| Constructors | |
|
|
data GraphNode |
|
|
type Graph = Map GLabel GraphNode |
a graph associates labels with graph nodes
|
|
type Jumpers = Map GLabel (Set GLabel) |
Jumpers lists for each label all the graph nodes that might jump to it
|
|
data GLabel |
a graph label, just wraps a label, helps with typechecking and we can sort the other way round
| Constructors | | Instances | |
|
|
data Write |
a write is a data section that should be written to the final bytecode file, Label is used as a placeholder
| Constructors | WUByte Int | | WUShort Int | | WLabel Int Label | | WByte Int | | WShort Int | |
|
|
|
data UseSet |
the use set for an instruction lists the variables that the instructions gives
as well as those that it needs, from this we can calculate what should be zapped.
| Constructors | UseSet | | useDepth :: Int | | useGive :: [Id] | | useNeed :: (Set Id) | |
|
|
|
|
emptyUS :: UseSet |
|
type Tag = Int |
|
type Label = Int |
|
data TypeSignature |
Constructors | ClassSignature String String | | ValueSignature String String | | Int32Signature | | CharSignature | | DoubleSignature | | FloatSignature | | BoolSignature | | VoidSignature | |
| Instances | |
|
|
data ILInstruction |
The instructions
| Constructors | | Instances | |
|
|
data PrimOp |
Constructors | | Instances | |
|
|
type UseIns = (ILInstruction, UseSet) |
|
Produced by Haddock version 0.8 |