llvm-0.4.1.0: Bindings to the LLVM compiler toolkit
Source code
Contents
Index
LLVM.FFI.Core
Portability
requires GHC 6.8, LLVM
Stability
experimental
Maintainer
bos@serpentine.com
Contents
Modules
Module providers
Types
Integer types
Real types
Function types
Other types
Array, pointer, and vector types
Struct types
Type handles
Values
Constants
Global variables, functions, and aliases (globals)
Global variables
Functions
Phi nodes
Calling conventions
Constants
Scalar constants
Composite constants
Constant expressions
Basic blocks
Instruction building
Terminators
Arithmetic
Memory
Casts
Comparisons
Miscellaneous instructions
Other helpers
Memory buffers
Error handling
Parameter passing
Pass manager
Description
This module provides direct access to the LLVM C bindings.
Synopsis
data
Module
type
ModuleRef
=
Ptr
Module
moduleCreateWithName
::
CString
->
IO
ModuleRef
disposeModule
::
ModuleRef
->
IO
()
getDataLayout
::
ModuleRef
->
IO
CString
setDataLayout
::
ModuleRef
->
CString
->
IO
()
getTarget
::
ModuleRef
->
IO
CString
setTarget
::
ModuleRef
->
CString
->
IO
()
data
ModuleProvider
type
ModuleProviderRef
=
Ptr
ModuleProvider
createModuleProviderForExistingModule
::
ModuleRef
->
IO
ModuleProviderRef
disposeModuleProvider
::
ModuleProviderRef
->
IO
()
data
Type
type
TypeRef
=
Ptr
Type
addTypeName
::
ModuleRef
->
CString
->
TypeRef
->
IO
CInt
deleteTypeName
::
ModuleRef
->
CString
->
IO
()
getTypeKind
::
TypeRef
->
IO
TypeKind
int1Type
::
TypeRef
int8Type
::
TypeRef
int16Type
::
TypeRef
int32Type
::
TypeRef
int64Type
::
TypeRef
integerType
::
CUInt
->
TypeRef
getIntTypeWidth
::
TypeRef
->
IO
CUInt
floatType
::
TypeRef
doubleType
::
TypeRef
x86FP80Type
::
TypeRef
fp128Type
::
TypeRef
ppcFP128Type
::
TypeRef
functionType
::
TypeRef
->
Ptr
TypeRef
->
CUInt
->
CInt
->
TypeRef
isFunctionVarArg
::
TypeRef
->
CInt
getReturnType
::
TypeRef
->
TypeRef
countParamTypes
::
TypeRef
->
CUInt
getParamTypes
::
TypeRef
->
Ptr
TypeRef
->
IO
()
voidType
::
TypeRef
labelType
::
IO
TypeRef
opaqueType
::
IO
TypeRef
arrayType
::
TypeRef
->
CUInt
->
TypeRef
pointerType
::
TypeRef
->
CUInt
->
TypeRef
vectorType
::
TypeRef
->
CUInt
->
TypeRef
getElementType
::
TypeRef
->
TypeRef
getArrayLength
::
TypeRef
->
IO
CUInt
getPointerAddressSpace
::
TypeRef
->
IO
CUInt
getVectorSize
::
TypeRef
->
IO
CUInt
structType
::
Ptr
TypeRef
->
CUInt
->
CInt
->
IO
TypeRef
countStructElementTypes
::
TypeRef
->
IO
CUInt
getStructElementTypes
::
TypeRef
->
Ptr
TypeRef
->
IO
()
isPackedStruct
::
TypeRef
->
IO
CInt
createTypeHandle
::
TypeRef
->
IO
TypeHandleRef
refineType
::
TypeRef
->
TypeRef
->
IO
()
resolveTypeHandle
:: TypeHandleRef ->
IO
TypeRef
disposeTypeHandle
:: TypeHandleRef ->
IO
()
data
Value
type
ValueRef
=
Ptr
Value
typeOf
::
ValueRef
->
IO
TypeRef
getValueName
::
ValueRef
->
IO
CString
setValueName
::
ValueRef
->
CString
->
IO
()
dumpValue
::
ValueRef
->
IO
()
constNull
::
TypeRef
->
ValueRef
constAllOnes
::
TypeRef
->
ValueRef
getUndef
::
TypeRef
->
ValueRef
isConstant
::
ValueRef
->
IO
CInt
isNull
::
ValueRef
->
IO
CInt
isUndef
::
ValueRef
->
IO
CInt
type
Linkage
=
CUInt
type
Visibility
=
CUInt
isDeclaration
::
ValueRef
->
IO
CInt
getLinkage
::
ValueRef
->
IO
Linkage
setLinkage
::
ValueRef
->
Linkage
->
IO
()
getSection
::
ValueRef
->
IO
CString
setSection
::
ValueRef
->
CString
->
IO
()
getVisibility
::
ValueRef
->
IO
Visibility
setVisibility
::
ValueRef
->
Visibility
->
IO
()
getAlignment
::
ValueRef
->
IO
CUInt
setAlignment
::
ValueRef
->
CUInt
->
IO
()
addGlobal
::
ModuleRef
->
TypeRef
->
CString
->
IO
ValueRef
getNamedGlobal
::
ModuleRef
->
CString
->
IO
ValueRef
deleteGlobal
::
ValueRef
->
IO
()
getInitializer
::
ValueRef
->
IO
ValueRef
setInitializer
::
ValueRef
->
ValueRef
->
IO
()
isThreadLocal
::
ValueRef
->
IO
CInt
setThreadLocal
::
ValueRef
->
CInt
->
IO
()
isGlobalConstant
::
ValueRef
->
IO
CInt
setGlobalConstant
::
ValueRef
->
CInt
->
IO
()
getFirstGlobal
::
ModuleRef
->
IO
ValueRef
getNextGlobal
::
ValueRef
->
IO
ValueRef
getPreviousGlobal
::
ValueRef
->
IO
ValueRef
getLastGlobal
::
ModuleRef
->
IO
ValueRef
getGlobalParent
::
ValueRef
->
IO
ModuleRef
addFunction
::
ModuleRef
->
CString
->
TypeRef
->
IO
ValueRef
getNamedFunction
::
ModuleRef
->
CString
->
IO
ValueRef
deleteFunction
::
ValueRef
->
IO
()
countParams
::
ValueRef
->
CUInt
getParams
::
ValueRef
->
Ptr
ValueRef
->
IO
()
getParam
::
ValueRef
->
CUInt
->
ValueRef
getIntrinsicID
::
ValueRef
->
CUInt
getGC
::
ValueRef
->
IO
CString
setGC
::
ValueRef
->
CString
->
IO
()
getFirstFunction
::
ModuleRef
->
IO
ValueRef
getNextFunction
::
ValueRef
->
IO
ValueRef
getPreviousFunction
::
ValueRef
->
IO
ValueRef
getLastFunction
::
ModuleRef
->
IO
ValueRef
getFirstParam
::
ValueRef
->
IO
ValueRef
getNextParam
::
ValueRef
->
IO
ValueRef
getPreviousParam
::
ValueRef
->
IO
ValueRef
getLastParam
::
ValueRef
->
IO
ValueRef
getParamParent
::
ValueRef
->
IO
ValueRef
isTailCall
::
ValueRef
->
IO
CInt
setTailCall
::
ValueRef
->
CInt
->
IO
()
addIncoming
::
ValueRef
->
Ptr
ValueRef
->
Ptr
ValueRef
->
CUInt
->
IO
()
countIncoming
::
ValueRef
->
IO
CUInt
getIncomingValue
::
ValueRef
->
CUInt
->
IO
ValueRef
getIncomingBlock
::
ValueRef
->
CUInt
->
IO
BasicBlockRef
data
CallingConvention
=
C
|
Fast
|
Cold
|
X86StdCall
|
X86FastCall
fromCallingConvention
::
CallingConvention
->
CUInt
toCallingConvention
::
CUInt
->
CallingConvention
getFunctionCallConv
::
ValueRef
->
IO
CUInt
setFunctionCallConv
::
ValueRef
->
CUInt
->
IO
()
getInstructionCallConv
::
ValueRef
->
IO
CUInt
setInstructionCallConv
::
ValueRef
->
CUInt
->
IO
()
constInt
::
TypeRef
->
CULLong
->
CInt
->
ValueRef
constReal
::
TypeRef
->
CDouble
->
ValueRef
constArray
::
TypeRef
->
Ptr
ValueRef
->
CUInt
->
ValueRef
constString
::
CString
->
CUInt
->
CInt
->
ValueRef
constStruct
::
Ptr
ValueRef
->
CUInt
->
CInt
->
ValueRef
constVector
::
Ptr
ValueRef
->
CUInt
->
ValueRef
sizeOf
::
TypeRef
->
IO
ValueRef
constNeg
::
ValueRef
->
ValueRef
constNot
::
ValueRef
->
ValueRef
constAdd
::
ValueRef
->
ValueRef
->
ValueRef
constSub
::
ValueRef
->
ValueRef
->
ValueRef
constMul
::
ValueRef
->
ValueRef
->
ValueRef
constUDiv
::
ValueRef
->
ValueRef
->
ValueRef
constSDiv
::
ValueRef
->
ValueRef
->
ValueRef
constFDiv
::
ValueRef
->
ValueRef
->
ValueRef
constURem
::
ValueRef
->
ValueRef
->
ValueRef
constSRem
::
ValueRef
->
ValueRef
->
ValueRef
constFRem
::
ValueRef
->
ValueRef
->
ValueRef
constAnd
::
ValueRef
->
ValueRef
->
ValueRef
constOr
::
ValueRef
->
ValueRef
->
ValueRef
constXor
::
ValueRef
->
ValueRef
->
ValueRef
constICmp
::
CInt
->
ValueRef
->
ValueRef
->
ValueRef
constFCmp
::
CInt
->
ValueRef
->
ValueRef
->
ValueRef
constShl
::
ValueRef
->
ValueRef
->
ValueRef
constLShr
::
ValueRef
->
ValueRef
->
ValueRef
constAShr
::
ValueRef
->
ValueRef
->
ValueRef
constGEP
::
ValueRef
->
Ptr
ValueRef
->
CUInt
->
ValueRef
constTrunc
::
ValueRef
->
TypeRef
->
ValueRef
constSExt
::
ValueRef
->
TypeRef
->
ValueRef
constZExt
::
ValueRef
->
TypeRef
->
ValueRef
constFPTrunc
::
ValueRef
->
TypeRef
->
ValueRef
constFPExt
::
ValueRef
->
TypeRef
->
ValueRef
constUIToFP
::
ValueRef
->
TypeRef
->
ValueRef
constSIToFP
::
ValueRef
->
TypeRef
->
ValueRef
constFPToUI
::
ValueRef
->
TypeRef
->
ValueRef
constFPToSI
::
ValueRef
->
TypeRef
->
ValueRef
constPtrToInt
::
ValueRef
->
TypeRef
->
ValueRef
constIntToPtr
::
ValueRef
->
TypeRef
->
ValueRef
constBitCast
::
ValueRef
->
TypeRef
->
ValueRef
constSelect
::
ValueRef
->
ValueRef
->
ValueRef
->
ValueRef
constExtractElement
::
ValueRef
->
ValueRef
->
ValueRef
constInsertElement
::
ValueRef
->
ValueRef
->
ValueRef
->
ValueRef
constShuffleVector
::
ValueRef
->
ValueRef
->
ValueRef
->
ValueRef
constRealOfString
::
TypeRef
->
CString
->
IO
ValueRef
type
BasicBlock
=
Value
type
BasicBlockRef
=
Ptr
BasicBlock
basicBlockAsValue
::
BasicBlockRef
->
ValueRef
valueIsBasicBlock
::
ValueRef
->
Bool
valueAsBasicBlock
::
ValueRef
->
BasicBlockRef
countBasicBlocks
::
ValueRef
->
IO
CUInt
getBasicBlocks
::
ValueRef
->
Ptr
BasicBlockRef
->
IO
()
getEntryBasicBlock
::
ValueRef
->
IO
BasicBlockRef
appendBasicBlock
::
ValueRef
->
CString
->
IO
BasicBlockRef
insertBasicBlock
::
BasicBlockRef
->
CString
->
IO
BasicBlockRef
deleteBasicBlock
::
BasicBlockRef
->
IO
()
getFirstBasicBlock
::
ValueRef
->
IO
BasicBlockRef
getNextBasicBlock
::
BasicBlockRef
->
IO
BasicBlockRef
getPreviousBasicBlock
::
BasicBlockRef
->
IO
BasicBlockRef
getLastBasicBlock
::
ValueRef
->
IO
BasicBlockRef
getInsertBlock
::
BuilderRef
->
IO
BasicBlockRef
getBasicBlockParent
::
BasicBlockRef
->
IO
ValueRef
data
Builder
type
BuilderRef
=
Ptr
Builder
createBuilder
::
IO
BuilderRef
disposeBuilder
::
BuilderRef
->
IO
()
positionBuilder
::
BuilderRef
->
BasicBlockRef
->
ValueRef
->
IO
()
positionBefore
::
BuilderRef
->
ValueRef
->
IO
()
positionAtEnd
::
BuilderRef
->
BasicBlockRef
->
IO
()
getFirstInstruction
::
BasicBlockRef
->
IO
ValueRef
getNextInstruction
::
ValueRef
->
IO
ValueRef
getPreviousInstruction
::
ValueRef
->
IO
ValueRef
getLastInstruction
::
BasicBlockRef
->
IO
ValueRef
getInstructionParent
::
ValueRef
->
IO
BasicBlockRef
buildRetVoid
::
BuilderRef
->
IO
ValueRef
buildRet
::
BuilderRef
->
ValueRef
->
IO
ValueRef
buildBr
::
BuilderRef
->
BasicBlockRef
->
IO
ValueRef
buildCondBr
::
BuilderRef
->
ValueRef
->
BasicBlockRef
->
BasicBlockRef
->
IO
ValueRef
buildSwitch
::
BuilderRef
->
ValueRef
->
BasicBlockRef
->
CUInt
->
IO
ValueRef
buildInvoke
::
BuilderRef
->
ValueRef
->
Ptr
ValueRef
->
CUInt
->
BasicBlockRef
->
BasicBlockRef
->
CString
->
IO
ValueRef
buildUnwind
::
BuilderRef
->
IO
ValueRef
buildUnreachable
::
BuilderRef
->
IO
ValueRef
buildAdd
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildSub
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildMul
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildUDiv
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildSDiv
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildFDiv
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildURem
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildSRem
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildFRem
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildShl
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildLShr
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildAShr
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildAnd
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildOr
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildXor
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildNeg
::
BuilderRef
->
ValueRef
->
CString
->
IO
ValueRef
buildNot
::
BuilderRef
->
ValueRef
->
CString
->
IO
ValueRef
buildMalloc
::
BuilderRef
->
TypeRef
->
CString
->
IO
ValueRef
buildArrayMalloc
::
BuilderRef
->
TypeRef
->
ValueRef
->
CString
->
IO
ValueRef
buildAlloca
::
BuilderRef
->
TypeRef
->
CString
->
IO
ValueRef
buildArrayAlloca
::
BuilderRef
->
TypeRef
->
ValueRef
->
CString
->
IO
ValueRef
buildFree
::
BuilderRef
->
ValueRef
->
IO
ValueRef
buildLoad
::
BuilderRef
->
ValueRef
->
CString
->
IO
ValueRef
buildStore
::
BuilderRef
->
ValueRef
->
ValueRef
->
IO
ValueRef
buildGEP
::
BuilderRef
->
ValueRef
->
Ptr
ValueRef
->
CUInt
->
CString
->
IO
ValueRef
buildTrunc
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildZExt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildSExt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildFPToUI
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildFPToSI
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildUIToFP
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildSIToFP
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildFPTrunc
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildFPExt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildPtrToInt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildIntToPtr
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildBitCast
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildICmp
::
BuilderRef
->
CInt
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildFCmp
::
BuilderRef
->
CInt
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildPhi
::
BuilderRef
->
TypeRef
->
CString
->
IO
ValueRef
buildCall
::
BuilderRef
->
ValueRef
->
Ptr
ValueRef
->
CUInt
->
CString
->
IO
ValueRef
buildSelect
::
BuilderRef
->
ValueRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildVAArg
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
buildExtractElement
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildInsertElement
::
BuilderRef
->
ValueRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
buildShuffleVector
::
BuilderRef
->
ValueRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
addCase
::
ValueRef
->
ValueRef
->
BasicBlockRef
->
IO
()
data
MemoryBuffer
type
MemoryBufferRef
=
Ptr
MemoryBuffer
createMemoryBufferWithContentsOfFile
::
CString
->
Ptr
MemoryBufferRef
->
Ptr
CString
->
IO
CInt
createMemoryBufferWithSTDIN
::
Ptr
MemoryBufferRef
->
Ptr
CString
->
IO
CInt
disposeMemoryBuffer
::
MemoryBufferRef
->
IO
()
disposeMessage
::
CString
->
IO
()
addInstrAttribute
::
ValueRef
->
CUInt
-> Attribute ->
IO
()
addAttribute
::
ValueRef
-> Attribute ->
IO
()
removeInstrAttribute
::
ValueRef
->
CUInt
-> Attribute ->
IO
()
removeAttribute
::
ValueRef
-> Attribute ->
IO
()
setInstrParamAlignment
::
ValueRef
->
CUInt
->
CUInt
->
IO
()
setParamAlignment
::
ValueRef
->
CUInt
->
IO
()
data
PassManager
type
PassManagerRef
=
Ptr
PassManager
createFunctionPassManager
::
ModuleProviderRef
->
IO
PassManagerRef
createPassManager
::
IO
PassManagerRef
disposePassManager
::
PassManagerRef
->
IO
()
finalizeFunctionPassManager
::
PassManagerRef
->
IO
CInt
initializeFunctionPassManager
::
PassManagerRef
->
IO
CInt
runFunctionPassManager
::
PassManagerRef
->
ValueRef
->
IO
CInt
runPassManager
::
PassManagerRef
->
ModuleRef
->
IO
CInt
dumpModule
::
ModuleRef
->
IO
()
Modules
data
Module
Source
type
ModuleRef
=
Ptr
Module
Source
moduleCreateWithName
::
CString
->
IO
ModuleRef
Source
disposeModule
::
ModuleRef
->
IO
()
Source
getDataLayout
::
ModuleRef
->
IO
CString
Source
setDataLayout
::
ModuleRef
->
CString
->
IO
()
Source
getTarget
::
ModuleRef
->
IO
CString
Source
setTarget
::
ModuleRef
->
CString
->
IO
()
Source
Module providers
data
ModuleProvider
Source
type
ModuleProviderRef
=
Ptr
ModuleProvider
Source
createModuleProviderForExistingModule
::
ModuleRef
->
IO
ModuleProviderRef
Source
disposeModuleProvider
::
ModuleProviderRef
->
IO
()
Source
Types
data
Type
Source
type
TypeRef
=
Ptr
Type
Source
addTypeName
::
ModuleRef
->
CString
->
TypeRef
->
IO
CInt
Source
deleteTypeName
::
ModuleRef
->
CString
->
IO
()
Source
getTypeKind
::
TypeRef
->
IO
TypeKind
Source
Integer types
int1Type
::
TypeRef
Source
int8Type
::
TypeRef
Source
int16Type
::
TypeRef
Source
int32Type
::
TypeRef
Source
int64Type
::
TypeRef
Source
integerType
Source
::
CUInt
width in bits
->
TypeRef
An integer type of the given width.
getIntTypeWidth
::
TypeRef
->
IO
CUInt
Source
Real types
floatType
::
TypeRef
Source
doubleType
::
TypeRef
Source
x86FP80Type
::
TypeRef
Source
fp128Type
::
TypeRef
Source
ppcFP128Type
::
TypeRef
Source
Function types
functionType
Source
::
TypeRef
return type
->
Ptr
TypeRef
array of argument types
->
CUInt
number of elements in array
->
CInt
non-zero if function is varargs
->
TypeRef
Create a function type.
isFunctionVarArg
::
TypeRef
->
CInt
Source
Indicate whether a function takes varargs.
getReturnType
::
TypeRef
->
TypeRef
Source
Give a function's return type.
countParamTypes
::
TypeRef
->
CUInt
Source
Give the number of fixed parameters that a function takes.
getParamTypes
::
TypeRef
->
Ptr
TypeRef
->
IO
()
Source
Fill out an array with the types of a function's fixed parameters.
Other types
voidType
::
TypeRef
Source
labelType
::
IO
TypeRef
Source
opaqueType
::
IO
TypeRef
Source
Array, pointer, and vector types
arrayType
Source
::
TypeRef
element type
->
CUInt
element count
->
TypeRef
pointerType
Source
::
TypeRef
pointed-to type
->
CUInt
address space
->
TypeRef
vectorType
Source
::
TypeRef
element type
->
CUInt
element count
->
TypeRef
getElementType
::
TypeRef
->
TypeRef
Source
Give the type of a sequential type's elements.
getArrayLength
::
TypeRef
->
IO
CUInt
Source
getPointerAddressSpace
::
TypeRef
->
IO
CUInt
Source
getVectorSize
::
TypeRef
->
IO
CUInt
Source
Struct types
structType
::
Ptr
TypeRef
->
CUInt
->
CInt
->
IO
TypeRef
Source
countStructElementTypes
::
TypeRef
->
IO
CUInt
Source
getStructElementTypes
::
TypeRef
->
Ptr
TypeRef
->
IO
()
Source
isPackedStruct
::
TypeRef
->
IO
CInt
Source
Type handles
createTypeHandle
::
TypeRef
->
IO
TypeHandleRef
Source
refineType
::
TypeRef
->
TypeRef
->
IO
()
Source
resolveTypeHandle
:: TypeHandleRef ->
IO
TypeRef
Source
disposeTypeHandle
:: TypeHandleRef ->
IO
()
Source
Values
data
Value
Source
type
ValueRef
=
Ptr
Value
Source
typeOf
::
ValueRef
->
IO
TypeRef
Source
getValueName
::
ValueRef
->
IO
CString
Source
setValueName
::
ValueRef
->
CString
->
IO
()
Source
dumpValue
::
ValueRef
->
IO
()
Source
Constants
constNull
::
TypeRef
->
ValueRef
Source
constAllOnes
::
TypeRef
->
ValueRef
Source
getUndef
::
TypeRef
->
ValueRef
Source
isConstant
::
ValueRef
->
IO
CInt
Source
isNull
::
ValueRef
->
IO
CInt
Source
isUndef
::
ValueRef
->
IO
CInt
Source
Global variables, functions, and aliases (globals)
type
Linkage
=
CUInt
Source
type
Visibility
=
CUInt
Source
isDeclaration
::
ValueRef
->
IO
CInt
Source
getLinkage
::
ValueRef
->
IO
Linkage
Source
setLinkage
::
ValueRef
->
Linkage
->
IO
()
Source
getSection
::
ValueRef
->
IO
CString
Source
setSection
::
ValueRef
->
CString
->
IO
()
Source
getVisibility
::
ValueRef
->
IO
Visibility
Source
setVisibility
::
ValueRef
->
Visibility
->
IO
()
Source
getAlignment
::
ValueRef
->
IO
CUInt
Source
setAlignment
::
ValueRef
->
CUInt
->
IO
()
Source
Global variables
addGlobal
::
ModuleRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
getNamedGlobal
::
ModuleRef
->
CString
->
IO
ValueRef
Source
deleteGlobal
::
ValueRef
->
IO
()
Source
getInitializer
::
ValueRef
->
IO
ValueRef
Source
setInitializer
::
ValueRef
->
ValueRef
->
IO
()
Source
isThreadLocal
::
ValueRef
->
IO
CInt
Source
setThreadLocal
::
ValueRef
->
CInt
->
IO
()
Source
isGlobalConstant
::
ValueRef
->
IO
CInt
Source
setGlobalConstant
::
ValueRef
->
CInt
->
IO
()
Source
getFirstGlobal
::
ModuleRef
->
IO
ValueRef
Source
getNextGlobal
::
ValueRef
->
IO
ValueRef
Source
getPreviousGlobal
::
ValueRef
->
IO
ValueRef
Source
getLastGlobal
::
ModuleRef
->
IO
ValueRef
Source
getGlobalParent
::
ValueRef
->
IO
ModuleRef
Source
Functions
addFunction
Source
::
ModuleRef
module
->
CString
name
->
TypeRef
type
->
IO
ValueRef
getNamedFunction
Source
::
ModuleRef
module
->
CString
name
->
IO
ValueRef
function (
nullPtr
if not found)
deleteFunction
Source
::
ValueRef
function
->
IO
()
countParams
Source
::
ValueRef
function
->
CUInt
getParams
Source
::
ValueRef
function
->
Ptr
ValueRef
array to fill out
->
IO
()
getParam
Source
::
ValueRef
function
->
CUInt
offset into array
->
ValueRef
getIntrinsicID
Source
::
ValueRef
function
->
CUInt
getGC
::
ValueRef
->
IO
CString
Source
setGC
::
ValueRef
->
CString
->
IO
()
Source
getFirstFunction
::
ModuleRef
->
IO
ValueRef
Source
getNextFunction
::
ValueRef
->
IO
ValueRef
Source
getPreviousFunction
::
ValueRef
->
IO
ValueRef
Source
getLastFunction
::
ModuleRef
->
IO
ValueRef
Source
getFirstParam
::
ValueRef
->
IO
ValueRef
Source
getNextParam
::
ValueRef
->
IO
ValueRef
Source
getPreviousParam
::
ValueRef
->
IO
ValueRef
Source
getLastParam
::
ValueRef
->
IO
ValueRef
Source
getParamParent
::
ValueRef
->
IO
ValueRef
Source
isTailCall
::
ValueRef
->
IO
CInt
Source
setTailCall
::
ValueRef
->
CInt
->
IO
()
Source
Phi nodes
addIncoming
::
ValueRef
->
Ptr
ValueRef
->
Ptr
ValueRef
->
CUInt
->
IO
()
Source
countIncoming
::
ValueRef
->
IO
CUInt
Source
getIncomingValue
::
ValueRef
->
CUInt
->
IO
ValueRef
Source
getIncomingBlock
::
ValueRef
->
CUInt
->
IO
BasicBlockRef
Source
Calling conventions
data
CallingConvention
Source
Constructors
C
Fast
Cold
X86StdCall
X86FastCall
Instances
Eq
CallingConvention
Show
CallingConvention
fromCallingConvention
::
CallingConvention
->
CUInt
Source
toCallingConvention
::
CUInt
->
CallingConvention
Source
getFunctionCallConv
Source
::
ValueRef
function
->
IO
CUInt
setFunctionCallConv
Source
::
ValueRef
function
->
CUInt
->
IO
()
getInstructionCallConv
::
ValueRef
->
IO
CUInt
Source
setInstructionCallConv
::
ValueRef
->
CUInt
->
IO
()
Source
Constants
Scalar constants
constInt
::
TypeRef
->
CULLong
->
CInt
->
ValueRef
Source
constReal
::
TypeRef
->
CDouble
->
ValueRef
Source
Composite constants
constArray
::
TypeRef
->
Ptr
ValueRef
->
CUInt
->
ValueRef
Source
constString
::
CString
->
CUInt
->
CInt
->
ValueRef
Source
constStruct
::
Ptr
ValueRef
->
CUInt
->
CInt
->
ValueRef
Source
constVector
::
Ptr
ValueRef
->
CUInt
->
ValueRef
Source
Constant expressions
sizeOf
::
TypeRef
->
IO
ValueRef
Source
constNeg
::
ValueRef
->
ValueRef
Source
constNot
::
ValueRef
->
ValueRef
Source
constAdd
::
ValueRef
->
ValueRef
->
ValueRef
Source
constSub
::
ValueRef
->
ValueRef
->
ValueRef
Source
constMul
::
ValueRef
->
ValueRef
->
ValueRef
Source
constUDiv
::
ValueRef
->
ValueRef
->
ValueRef
Source
constSDiv
::
ValueRef
->
ValueRef
->
ValueRef
Source
constFDiv
::
ValueRef
->
ValueRef
->
ValueRef
Source
constURem
::
ValueRef
->
ValueRef
->
ValueRef
Source
constSRem
::
ValueRef
->
ValueRef
->
ValueRef
Source
constFRem
::
ValueRef
->
ValueRef
->
ValueRef
Source
constAnd
::
ValueRef
->
ValueRef
->
ValueRef
Source
constOr
::
ValueRef
->
ValueRef
->
ValueRef
Source
constXor
::
ValueRef
->
ValueRef
->
ValueRef
Source
constICmp
::
CInt
->
ValueRef
->
ValueRef
->
ValueRef
Source
constFCmp
::
CInt
->
ValueRef
->
ValueRef
->
ValueRef
Source
constShl
::
ValueRef
->
ValueRef
->
ValueRef
Source
constLShr
::
ValueRef
->
ValueRef
->
ValueRef
Source
constAShr
::
ValueRef
->
ValueRef
->
ValueRef
Source
constGEP
::
ValueRef
->
Ptr
ValueRef
->
CUInt
->
ValueRef
Source
constTrunc
::
ValueRef
->
TypeRef
->
ValueRef
Source
constSExt
::
ValueRef
->
TypeRef
->
ValueRef
Source
constZExt
::
ValueRef
->
TypeRef
->
ValueRef
Source
constFPTrunc
::
ValueRef
->
TypeRef
->
ValueRef
Source
constFPExt
::
ValueRef
->
TypeRef
->
ValueRef
Source
constUIToFP
::
ValueRef
->
TypeRef
->
ValueRef
Source
constSIToFP
::
ValueRef
->
TypeRef
->
ValueRef
Source
constFPToUI
::
ValueRef
->
TypeRef
->
ValueRef
Source
constFPToSI
::
ValueRef
->
TypeRef
->
ValueRef
Source
constPtrToInt
::
ValueRef
->
TypeRef
->
ValueRef
Source
constIntToPtr
::
ValueRef
->
TypeRef
->
ValueRef
Source
constBitCast
::
ValueRef
->
TypeRef
->
ValueRef
Source
constSelect
::
ValueRef
->
ValueRef
->
ValueRef
->
ValueRef
Source
constExtractElement
::
ValueRef
->
ValueRef
->
ValueRef
Source
constInsertElement
::
ValueRef
->
ValueRef
->
ValueRef
->
ValueRef
Source
constShuffleVector
::
ValueRef
->
ValueRef
->
ValueRef
->
ValueRef
Source
constRealOfString
::
TypeRef
->
CString
->
IO
ValueRef
Source
Basic blocks
type
BasicBlock
=
Value
Source
type
BasicBlockRef
=
Ptr
BasicBlock
Source
basicBlockAsValue
::
BasicBlockRef
->
ValueRef
Source
valueIsBasicBlock
::
ValueRef
->
Bool
Source
valueAsBasicBlock
Source
::
ValueRef
basic block
->
BasicBlockRef
countBasicBlocks
Source
::
ValueRef
function
->
IO
CUInt
getBasicBlocks
Source
::
ValueRef
function
->
Ptr
BasicBlockRef
array to fill out
->
IO
()
getEntryBasicBlock
Source
::
ValueRef
function
->
IO
BasicBlockRef
appendBasicBlock
Source
::
ValueRef
function
->
CString
name for label
->
IO
BasicBlockRef
insertBasicBlock
Source
::
BasicBlockRef
insert before this one
->
CString
name for label
->
IO
BasicBlockRef
deleteBasicBlock
::
BasicBlockRef
->
IO
()
Source
getFirstBasicBlock
::
ValueRef
->
IO
BasicBlockRef
Source
getNextBasicBlock
::
BasicBlockRef
->
IO
BasicBlockRef
Source
getPreviousBasicBlock
::
BasicBlockRef
->
IO
BasicBlockRef
Source
getLastBasicBlock
::
ValueRef
->
IO
BasicBlockRef
Source
getInsertBlock
::
BuilderRef
->
IO
BasicBlockRef
Source
getBasicBlockParent
::
BasicBlockRef
->
IO
ValueRef
Source
Instruction building
data
Builder
Source
type
BuilderRef
=
Ptr
Builder
Source
createBuilder
::
IO
BuilderRef
Source
disposeBuilder
::
BuilderRef
->
IO
()
Source
positionBuilder
::
BuilderRef
->
BasicBlockRef
->
ValueRef
->
IO
()
Source
positionBefore
::
BuilderRef
->
ValueRef
->
IO
()
Source
positionAtEnd
::
BuilderRef
->
BasicBlockRef
->
IO
()
Source
getFirstInstruction
::
BasicBlockRef
->
IO
ValueRef
Source
getNextInstruction
::
ValueRef
->
IO
ValueRef
Source
getPreviousInstruction
::
ValueRef
->
IO
ValueRef
Source
getLastInstruction
::
BasicBlockRef
->
IO
ValueRef
Source
getInstructionParent
::
ValueRef
->
IO
BasicBlockRef
Source
Terminators
buildRetVoid
::
BuilderRef
->
IO
ValueRef
Source
buildRet
::
BuilderRef
->
ValueRef
->
IO
ValueRef
Source
buildBr
::
BuilderRef
->
BasicBlockRef
->
IO
ValueRef
Source
buildCondBr
::
BuilderRef
->
ValueRef
->
BasicBlockRef
->
BasicBlockRef
->
IO
ValueRef
Source
buildSwitch
::
BuilderRef
->
ValueRef
->
BasicBlockRef
->
CUInt
->
IO
ValueRef
Source
buildInvoke
::
BuilderRef
->
ValueRef
->
Ptr
ValueRef
->
CUInt
->
BasicBlockRef
->
BasicBlockRef
->
CString
->
IO
ValueRef
Source
buildUnwind
::
BuilderRef
->
IO
ValueRef
Source
buildUnreachable
::
BuilderRef
->
IO
ValueRef
Source
Arithmetic
buildAdd
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildSub
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildMul
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildUDiv
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildSDiv
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildFDiv
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildURem
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildSRem
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildFRem
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildShl
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildLShr
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildAShr
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildAnd
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildOr
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildXor
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildNeg
::
BuilderRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildNot
::
BuilderRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
Memory
buildMalloc
::
BuilderRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildArrayMalloc
::
BuilderRef
->
TypeRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildAlloca
::
BuilderRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildArrayAlloca
::
BuilderRef
->
TypeRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildFree
::
BuilderRef
->
ValueRef
->
IO
ValueRef
Source
buildLoad
::
BuilderRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildStore
::
BuilderRef
->
ValueRef
->
ValueRef
->
IO
ValueRef
Source
buildGEP
::
BuilderRef
->
ValueRef
->
Ptr
ValueRef
->
CUInt
->
CString
->
IO
ValueRef
Source
Casts
buildTrunc
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildZExt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildSExt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildFPToUI
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildFPToSI
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildUIToFP
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildSIToFP
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildFPTrunc
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildFPExt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildPtrToInt
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildIntToPtr
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildBitCast
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
Comparisons
buildICmp
::
BuilderRef
->
CInt
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildFCmp
::
BuilderRef
->
CInt
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
Miscellaneous instructions
buildPhi
::
BuilderRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildCall
::
BuilderRef
->
ValueRef
->
Ptr
ValueRef
->
CUInt
->
CString
->
IO
ValueRef
Source
buildSelect
::
BuilderRef
->
ValueRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildVAArg
::
BuilderRef
->
ValueRef
->
TypeRef
->
CString
->
IO
ValueRef
Source
buildExtractElement
::
BuilderRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildInsertElement
::
BuilderRef
->
ValueRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
buildShuffleVector
::
BuilderRef
->
ValueRef
->
ValueRef
->
ValueRef
->
CString
->
IO
ValueRef
Source
Other helpers
addCase
::
ValueRef
->
ValueRef
->
BasicBlockRef
->
IO
()
Source
Memory buffers
data
MemoryBuffer
Source
type
MemoryBufferRef
=
Ptr
MemoryBuffer
Source
createMemoryBufferWithContentsOfFile
::
CString
->
Ptr
MemoryBufferRef
->
Ptr
CString
->
IO
CInt
Source
createMemoryBufferWithSTDIN
::
Ptr
MemoryBufferRef
->
Ptr
CString
->
IO
CInt
Source
disposeMemoryBuffer
::
MemoryBufferRef
->
IO
()
Source
Error handling
disposeMessage
::
CString
->
IO
()
Source
Parameter passing
addInstrAttribute
::
ValueRef
->
CUInt
-> Attribute ->
IO
()
Source
addAttribute
::
ValueRef
-> Attribute ->
IO
()
Source
removeInstrAttribute
::
ValueRef
->
CUInt
-> Attribute ->
IO
()
Source
removeAttribute
::
ValueRef
-> Attribute ->
IO
()
Source
setInstrParamAlignment
::
ValueRef
->
CUInt
->
CUInt
->
IO
()
Source
setParamAlignment
::
ValueRef
->
CUInt
->
IO
()
Source
Pass manager
data
PassManager
Source
type
PassManagerRef
=
Ptr
PassManager
Source
createFunctionPassManager
::
ModuleProviderRef
->
IO
PassManagerRef
Source
createPassManager
::
IO
PassManagerRef
Source
disposePassManager
::
PassManagerRef
->
IO
()
Source
finalizeFunctionPassManager
::
PassManagerRef
->
IO
CInt
Source
initializeFunctionPassManager
::
PassManagerRef
->
IO
CInt
Source
runFunctionPassManager
::
PassManagerRef
->
ValueRef
->
IO
CInt
Source
runPassManager
::
PassManagerRef
->
ModuleRef
->
IO
CInt
Source
dumpModule
::
ModuleRef
->
IO
()
Source
Produced by
Haddock
version 2.4.2