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