Safe Haskell | Safe-Inferred |
---|
This module and descendants define AST data types to represent LLVM code. Note that these types are designed for fidelity rather than convenience - if the truth of what LLVM supports is less than pretty, so be it.
- data Module = Module {}
- defaultModule :: Module
- data Definition
- data Global
- = GlobalVariable Name Linkage Visibility Bool AddrSpace Bool Bool Type (Maybe Constant) (Maybe String) Word32
- | GlobalAlias Name Linkage Visibility Type Constant
- | Function Linkage Visibility CallingConvention [ParameterAttribute] Type Name ([Parameter], Bool) [FunctionAttribute] (Maybe String) Word32 [BasicBlock]
- globalVariableDefaults :: Global
- globalAliasDefaults :: Global
- functionDefaults :: Global
- data Parameter = Parameter Type Name [ParameterAttribute]
- data BasicBlock = BasicBlock Name [Named Instruction] (Named Terminator)
- module LLVM.General.AST.Instruction
- module LLVM.General.AST.Name
- module LLVM.General.AST.Operand
- module LLVM.General.AST.Type
Documentation
data Module
Module | |
|
helper for making Module
s
data Definition
Any thing which can be at the top level of a Module
data Global
globalVariableDefaults :: Global
helper for making GlobalVariable
s
helper for making GlobalAlias
s
helper for making Function
s
data Parameter
data BasicBlock
http://llvm.org/doxygen/classllvm_1_1BasicBlock.html
LLVM code in a function is a sequence of BasicBlock
s each with a label,
some instructions, and a terminator.
module LLVM.General.AST.Instruction
module LLVM.General.AST.Name
module LLVM.General.AST.Operand
module LLVM.General.AST.Type