Safe Haskell | Safe |
---|---|
Language | Haskell98 |
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 (Maybe StorageClass) (Maybe Model) AddrSpace (Maybe UnnamedAddr) Bool Type (Maybe Constant) (Maybe String) (Maybe String) Word32
- | GlobalAlias Name Linkage Visibility (Maybe StorageClass) (Maybe Model) (Maybe UnnamedAddr) Type Constant
- | Function Linkage Visibility (Maybe StorageClass) CallingConvention [ParameterAttribute] Type Name ([Parameter], Bool) [Either GroupID FunctionAttribute] (Maybe String) (Maybe String) Word32 (Maybe String) (Maybe Constant) [BasicBlock] (Maybe Constant)
- globalVariableDefaults :: Global
- globalAliasDefaults :: Global
- functionDefaults :: Global
- data UnnamedAddr
- data Parameter = Parameter Type Name [ParameterAttribute]
- data BasicBlock = BasicBlock Name [Named Instruction] (Named Terminator)
- module LLVM.AST.Instruction
- module LLVM.AST.Name
- module LLVM.AST.Operand
- module LLVM.AST.Type
Documentation
Module | |
|
defaultModule :: Module Source #
helper for making Module
s
data Definition Source #
Any thing which can be at the top level of a Module
globalVariableDefaults :: Global Source #
helper for making GlobalVariable
s
globalAliasDefaults :: Global Source #
helper for making GlobalAlias
s
functionDefaults :: Global Source #
helper for making Function
s
data UnnamedAddr Source #
data BasicBlock Source #
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.AST.Instruction
module LLVM.AST.Name
module LLVM.AST.Operand
module LLVM.AST.Type