-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | FFI bindings to the LLVM compiler toolkit.
--   
--   FFI bindings to the LLVM compiler toolkit.
--   
--   We try to stay up to date with LLVM releases. The current version of
--   this package is compatible with LLVM 3.0 and 2.9. Please understand
--   that the package may or may not work against older LLVM releases; we
--   don't have the time or resources to test across multiple releases.
--   
--   <ul>
--   <li>New in 3.2: Builds against LLVM 3.2, new mid-level Wrapper
--   interface and ST-based pure interface</li>
--   <li>New in 3.0: Builds against LLVM 3.0.</li>
--   <li>New in 0.9.1.1: Builds against LLVM 2.9.</li>
--   <li>New in 0.9.1.0: Util.Memory for memory related intrinsics.</li>
--   <li>New in 0.9.0.0: Adapted to LLVM 2.8 (removed support for Union
--   types).</li>
--   </ul>
@package llvm-base
@version 3.2.0.0

module LLVM.Target.Native

-- | Initialize jitter to the native target. The operation is idempotent.
initializeNativeTarget :: IO ()


-- | This module provides direct access to the LLVM C bindings.
module LLVM.FFI.Core
data Module
type ModuleRef = Ptr Module
moduleCreateWithName :: CString -> IO ModuleRef
disposeModule :: ModuleRef -> IO ()
ptrDisposeModule :: FunPtr (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
ptrDisposeModuleProvider :: FunPtr (ModuleProviderRef -> IO ())
data Type
type TypeRef = Ptr Type
getTypeKind :: TypeRef -> IO TypeKind
data TypeKind
VoidTypeKind :: TypeKind
HalfTypeKind :: TypeKind
FloatTypeKind :: TypeKind
DoubleTypeKind :: TypeKind
X86_FP80TypeKind :: TypeKind
FP128TypeKind :: TypeKind
PPC_FP128TypeKind :: TypeKind
LabelTypeKind :: TypeKind
IntegerTypeKind :: TypeKind
FunctionTypeKind :: TypeKind
StructTypeKind :: TypeKind
ArrayTypeKind :: TypeKind
PointerTypeKind :: TypeKind
VectorTypeKind :: TypeKind
MetadataTypeKind :: TypeKind
X86_MMXTypeKind :: TypeKind
int1Type :: TypeRef
int8Type :: TypeRef
int16Type :: TypeRef
int32Type :: TypeRef
int64Type :: TypeRef

-- | An integer type of the given width.
integerType :: CUInt -> TypeRef
getIntTypeWidth :: TypeRef -> IO CUInt
floatType :: TypeRef
doubleType :: TypeRef
x86FP80Type :: TypeRef
fp128Type :: TypeRef
ppcFP128Type :: TypeRef

-- | Create a function type.
functionType :: TypeRef -> Ptr TypeRef -> CUInt -> Bool -> TypeRef

-- | Indicate whether a function takes varargs.
isFunctionVarArg :: TypeRef -> IO Bool

-- | Give a function's return type.
getReturnType :: TypeRef -> IO TypeRef

-- | Give the number of fixed parameters that a function takes.
countParamTypes :: TypeRef -> IO CUInt

-- | Fill out an array with the types of a function's fixed parameters.
getParamTypes :: TypeRef -> Ptr TypeRef -> IO ()
voidType :: TypeRef
labelType :: TypeRef
arrayType :: TypeRef -> CUInt -> TypeRef
pointerType :: TypeRef -> CUInt -> TypeRef
vectorType :: TypeRef -> CUInt -> TypeRef

-- | Get the type of a sequential type's elements.
getElementType :: TypeRef -> IO TypeRef
getArrayLength :: TypeRef -> IO CUInt
getPointerAddressSpace :: TypeRef -> IO CUInt
getVectorSize :: TypeRef -> IO CUInt
structType :: Ptr TypeRef -> CUInt -> Bool -> TypeRef
countStructElementTypes :: TypeRef -> CUInt
getStructElementTypes :: TypeRef -> Ptr TypeRef -> IO ()
isPackedStruct :: TypeRef -> Bool
structCreateNamed :: ContextRef -> CString -> IO TypeRef
getStructName :: TypeRef -> IO CString
structSetBody :: TypeRef -> Ptr TypeRef -> CUInt -> Bool -> 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 Bool
isNull :: ValueRef -> IO Bool
isUndef :: ValueRef -> IO Bool

-- | An enumeration for the kinds of linkage for global values.
data Linkage

-- | Externally visible function
ExternalLinkage :: Linkage
AvailableExternallyLinkage :: Linkage

-- | Keep one copy of function when linking (inline)
LinkOnceAnyLinkage :: Linkage

-- | Same, but only replaced by something equivalent.
LinkOnceODRLinkage :: Linkage

-- | Keep one copy of named function when linking (weak)
WeakAnyLinkage :: Linkage

-- | Same, but only replaced by something equivalent.
WeakODRLinkage :: Linkage

-- | Special purpose, only applies to global arrays
AppendingLinkage :: Linkage

-- | Rename collisions when linking (static functions)
InternalLinkage :: Linkage

-- | Like Internal, but omit from symbol table
PrivateLinkage :: Linkage

-- | Function to be imported from DLL
DLLImportLinkage :: Linkage

-- | Function to be accessible from DLL
DLLExportLinkage :: Linkage

-- | ExternalWeak linkage description
ExternalWeakLinkage :: Linkage

-- | Stand-in functions for streaming fns from BC files
GhostLinkage :: Linkage

-- | Tentative definitions
CommonLinkage :: Linkage

-- | Like Private, but linker removes.
LinkerPrivateLinkage :: Linkage
fromLinkage :: Linkage -> CUInt
toLinkage :: CUInt -> Linkage
getLinkage :: ValueRef -> IO CUInt
setLinkage :: ValueRef -> CUInt -> IO ()

-- | An enumeration for the kinds of visibility of global values.
data Visibility

-- | The GV is visible
DefaultVisibility :: Visibility

-- | The GV is hidden
HiddenVisibility :: Visibility

-- | The GV is protected
ProtectedVisibility :: Visibility
fromVisibility :: Visibility -> CUInt
toVisibility :: CUInt -> Visibility
getVisibility :: ValueRef -> IO CUInt
setVisibility :: ValueRef -> CUInt -> IO ()
isDeclaration :: ValueRef -> IO Bool
getSection :: ValueRef -> IO CString
setSection :: ValueRef -> CString -> 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 Bool
setThreadLocal :: ValueRef -> Bool -> IO ()
isGlobalConstant :: ValueRef -> IO Bool
setGlobalConstant :: ValueRef -> Bool -> 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 Bool
setTailCall :: ValueRef -> Bool -> 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 :: CallingConvention
Fast :: CallingConvention
Cold :: CallingConvention
X86StdCall :: CallingConvention
X86FastCall :: CallingConvention
GHC :: CallingConvention
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 -> Bool -> ValueRef
constReal :: TypeRef -> CDouble -> ValueRef
constArray :: TypeRef -> Ptr ValueRef -> CUInt -> ValueRef
constString :: CString -> CUInt -> Bool -> ValueRef
constStruct :: Ptr ValueRef -> CUInt -> Bool -> 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
constExactSDiv :: ValueRef -> ValueRef -> IO ValueRef
constFAdd :: ValueRef -> ValueRef -> ValueRef
constFMul :: ValueRef -> ValueRef -> ValueRef
constFNeg :: ValueRef -> ValueRef
constFPCast :: ValueRef -> TypeRef -> ValueRef
constFSub :: 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
constNSWMul :: ValueRef -> ValueRef -> IO ValueRef
constNSWNeg :: ValueRef -> IO ValueRef
constNSWSub :: ValueRef -> ValueRef -> IO ValueRef
constNUWAdd :: ValueRef -> ValueRef -> IO ValueRef
constNUWMul :: ValueRef -> ValueRef -> IO ValueRef
constNUWNeg :: ValueRef -> IO ValueRef
constNUWSub :: ValueRef -> ValueRef -> 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
instGetOpcode :: ValueRef -> IO Int
getInstructionOpcode :: ValueRef -> IO Int
cmpInstGetPredicate :: ValueRef -> IO Int
data Builder
type BuilderRef = Ptr Builder
createBuilder :: IO BuilderRef
disposeBuilder :: BuilderRef -> IO ()
ptrDisposeBuilder :: FunPtr (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
buildIndirectBr :: BuilderRef -> ValueRef -> CUInt -> 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
buildUnreachable :: BuilderRef -> IO ValueRef
buildLandingPad :: BuilderRef -> TypeRef -> ValueRef -> CUInt -> CString -> IO ValueRef
addClause :: ValueRef -> ValueRef -> IO ()
setCleanup :: ValueRef -> CUInt -> IO ()
buildAdd :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildSub :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildMul :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildFAdd :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildFMul :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildFPCast :: BuilderRef -> ValueRef -> TypeRef -> CString -> IO ValueRef
buildFSub :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildUDiv :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildSDiv :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildExactSDiv :: 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
buildFNeg :: BuilderRef -> ValueRef -> CString -> IO ValueRef
buildNot :: BuilderRef -> ValueRef -> CString -> IO ValueRef
buildNSWMul :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildNSWNeg :: BuilderRef -> ValueRef -> CString -> IO ValueRef
buildNSWSub :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildNUWAdd :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildNUWMul :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildNUWNeg :: BuilderRef -> ValueRef -> CString -> IO ValueRef
buildNUWSub :: BuilderRef -> ValueRef -> 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
buildPointerCast :: BuilderRef -> ValueRef -> TypeRef -> CString -> IO ValueRef
buildTruncOrBitCast :: BuilderRef -> ValueRef -> TypeRef -> CString -> IO ValueRef
buildZExtOrBitCast :: BuilderRef -> ValueRef -> TypeRef -> CString -> IO ValueRef
buildSExtOrBitCast :: BuilderRef -> ValueRef -> TypeRef -> CString -> IO ValueRef
buildPtrDiff :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildAggregateRet :: BuilderRef -> (Ptr ValueRef) -> CUInt -> IO ValueRef
buildGlobalString :: BuilderRef -> CString -> CString -> IO ValueRef
buildGlobalStringPtr :: BuilderRef -> CString -> CString -> IO ValueRef
buildInBoundsGEP :: BuilderRef -> ValueRef -> (Ptr ValueRef) -> CUInt -> CString -> IO ValueRef
buildIsNotNull :: BuilderRef -> ValueRef -> CString -> IO ValueRef
buildIsNull :: BuilderRef -> ValueRef -> CString -> IO ValueRef
buildNSWAdd :: BuilderRef -> ValueRef -> ValueRef -> CString -> IO ValueRef
buildStructGEP :: BuilderRef -> ValueRef -> CUInt -> CString -> IO ValueRef
data IntPredicate

-- | equal
IntEQ :: IntPredicate

-- | not equal
IntNE :: IntPredicate

-- | unsigned greater than
IntUGT :: IntPredicate

-- | unsigned greater or equal
IntUGE :: IntPredicate

-- | unsigned less than
IntULT :: IntPredicate

-- | unsigned less or equal
IntULE :: IntPredicate

-- | signed greater than
IntSGT :: IntPredicate

-- | signed greater or equal
IntSGE :: IntPredicate

-- | signed less than
IntSLT :: IntPredicate

-- | signed less or equal
IntSLE :: IntPredicate
toIntPredicate :: Int -> IntPredicate
fromIntPredicate :: IntPredicate -> CInt
data FPPredicate

-- | Always false (always folded)
FPFalse :: FPPredicate

-- | True if ordered and equal
FPOEQ :: FPPredicate

-- | True if ordered and greater than
FPOGT :: FPPredicate

-- | True if ordered and greater than or equal
FPOGE :: FPPredicate

-- | True if ordered and less than
FPOLT :: FPPredicate

-- | True if ordered and less than or equal
FPOLE :: FPPredicate

-- | True if ordered and operands are unequal
FPONE :: FPPredicate

-- | True if ordered (no nans)
FPORD :: FPPredicate

-- | True if unordered: isnan(X) | isnan(Y)
FPUNO :: FPPredicate

-- | True if unordered or equal
FPUEQ :: FPPredicate

-- | True if unordered or greater than
FPUGT :: FPPredicate

-- | True if unordered, greater than, or equal
FPUGE :: FPPredicate

-- | True if unordered or less than
FPULT :: FPPredicate

-- | True if unordered, less than, or equal
FPULE :: FPPredicate

-- | True if unordered or not equal
FPUNE :: FPPredicate

-- | Always true (always folded)
FPT :: FPPredicate
toFPPredicate :: Int -> FPPredicate
fromFPPredicate :: FPPredicate -> CInt
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 Bool
createMemoryBufferWithSTDIN :: Ptr MemoryBufferRef -> Ptr CString -> IO Bool
createMemoryBufferWithMemoryRange :: Ptr a -> CSize -> CString -> Bool -> IO MemoryBufferRef
createMemoryBufferWithMemoryRangeCopy :: Ptr a -> CSize -> CString -> IO MemoryBufferRef
disposeMemoryBuffer :: MemoryBufferRef -> IO ()
ptrDisposeMemoryBuffer :: FunPtr (MemoryBufferRef -> IO ())
disposeMessage :: CString -> IO ()
addAttribute :: ValueRef -> CAttribute -> IO ()
setInstrParamAlignment :: ValueRef -> CUInt -> CUInt -> IO ()
setParamAlignment :: ValueRef -> CUInt -> IO ()
data Attribute
ZExtAttribute :: Attribute
SExtAttribute :: Attribute
NoReturnAttribute :: Attribute
InRegAttribute :: Attribute
StructRetAttribute :: Attribute
NoUnwindAttribute :: Attribute
NoAliasAttribute :: Attribute
ByValAttribute :: Attribute
NestAttribute :: Attribute
ReadNoneAttribute :: Attribute
ReadOnlyAttribute :: Attribute
NoInlineAttribute :: Attribute
AlwaysInlineAttribute :: Attribute
OptimizeForSizeAttribute :: Attribute
StackProtectAttribute :: Attribute
StackProtectReqAttribute :: Attribute
NoCaptureAttribute :: Attribute
NoRedZoneAttribute :: Attribute
NoImplicitFloatAttribute :: Attribute
NakedAttribute :: Attribute
fromAttribute :: Attribute -> CAttribute
toAttribute :: CAttribute -> Attribute
addInstrAttribute :: ValueRef -> CUInt -> CAttribute -> IO ()
removeFunctionAttr :: ValueRef -> CAttribute -> IO ()
removeAttribute :: ValueRef -> CAttribute -> IO ()
removeInstrAttribute :: ValueRef -> CUInt -> CAttribute -> IO ()
addFunctionAttr :: ValueRef -> CAttribute -> IO ()
data PassManager
type PassManagerRef = Ptr PassManager
createFunctionPassManager :: ModuleProviderRef -> IO PassManagerRef
createPassManager :: IO PassManagerRef
disposePassManager :: PassManagerRef -> IO ()
ptrDisposePassManager :: FunPtr (PassManagerRef -> IO ())
finalizeFunctionPassManager :: PassManagerRef -> IO Bool
initializeFunctionPassManager :: PassManagerRef -> IO Bool
runFunctionPassManager :: PassManagerRef -> ValueRef -> IO Bool
runPassManager :: PassManagerRef -> ModuleRef -> IO Bool
data Context
type ContextRef = Ptr Context
dumpModule :: ModuleRef -> IO ()
printModuleToFile :: ModuleRef -> CString -> (Ptr CString) -> IO Bool
dumpModuleToString :: ModuleRef -> IO CString
dumpValueToString :: ValueRef -> IO CString
dumpTypeToString :: TypeRef -> IO CString
alignOf :: TypeRef -> IO ValueRef
constInBoundsGEP :: ValueRef -> (Ptr ValueRef) -> CUInt -> IO ValueRef
constIntCast :: ValueRef -> TypeRef -> CUInt -> IO ValueRef
constIntOfString :: TypeRef -> CString -> CUInt -> IO ValueRef
constIntOfStringAndSize :: TypeRef -> CString -> CUInt -> CUInt -> IO ValueRef
constNSWAdd :: ValueRef -> ValueRef -> IO ValueRef
constPointerCast :: ValueRef -> TypeRef -> IO ValueRef
constPointerNull :: TypeRef -> IO ValueRef
constRealOfStringAndSize :: TypeRef -> CString -> CUInt -> IO ValueRef
constSExtOrBitCast :: ValueRef -> TypeRef -> IO ValueRef
getTypeByName :: ModuleRef -> CString -> IO TypeRef
insertIntoBuilderWithName :: BuilderRef -> ValueRef -> CString -> IO ()
moduleCreateWithNameInContext :: CString -> ContextRef -> IO ModuleRef
appendBasicBlockInContext :: ContextRef -> ValueRef -> CString -> IO BasicBlockRef
insertBasicBlockInContext :: ContextRef -> BasicBlockRef -> CString -> IO BasicBlockRef
createBuilderInContext :: ContextRef -> IO BuilderRef
contextDispose :: ContextRef -> IO ()
ptrContextDispose :: FunPtr (ContextRef -> IO ())
constStringInContext :: ContextRef -> CString -> CUInt -> Bool -> IO ValueRef
constStructInContext :: ContextRef -> (Ptr ValueRef) -> CUInt -> Bool -> IO ValueRef
constTruncOrBitCast :: ValueRef -> TypeRef -> IO ValueRef
constZExtOrBitCast :: ValueRef -> TypeRef -> IO ValueRef
doubleTypeInContext :: ContextRef -> IO TypeRef
fP128TypeInContext :: ContextRef -> IO TypeRef
floatTypeInContext :: ContextRef -> IO TypeRef
int16TypeInContext :: ContextRef -> IO TypeRef
int1TypeInContext :: ContextRef -> IO TypeRef
int32TypeInContext :: ContextRef -> IO TypeRef
int64TypeInContext :: ContextRef -> IO TypeRef
int8TypeInContext :: ContextRef -> IO TypeRef
intTypeInContext :: ContextRef -> CUInt -> IO TypeRef
labelTypeInContext :: ContextRef -> IO TypeRef
pPCFP128TypeInContext :: ContextRef -> IO TypeRef
structTypeInContext :: ContextRef -> (Ptr TypeRef) -> CUInt -> Bool -> IO TypeRef
voidTypeInContext :: ContextRef -> IO TypeRef
x86FP80TypeInContext :: ContextRef -> IO TypeRef
getTypeContext :: TypeRef -> IO ContextRef
addAlias :: ModuleRef -> TypeRef -> ValueRef -> CString -> IO ValueRef
addDestination :: ValueRef -> BasicBlockRef -> IO ()
addGlobalInAddressSpace :: ModuleRef -> TypeRef -> CString -> CUInt -> IO ValueRef
blockAddress :: ValueRef -> BasicBlockRef -> IO ValueRef
clearInsertionPosition :: BuilderRef -> IO ()
constExtractValue :: ValueRef -> Ptr CUInt -> CUInt -> IO ValueRef
constInlineAsm :: TypeRef -> CString -> CString -> Bool -> Bool -> IO ValueRef
constInsertValue :: ValueRef -> ValueRef -> Ptr CUInt -> CUInt -> IO ValueRef
constIntGetSExtValue :: ValueRef -> IO CLLong
constIntGetZExtValue :: ValueRef -> IO CULLong
contextCreate :: IO ContextRef
createFunctionPassManagerForModule :: ModuleRef -> IO PassManagerRef
getAttribute :: ValueRef -> IO CUInt
getCurrentDebugLocation :: BuilderRef -> IO ValueRef
getFunctionAttr :: ValueRef -> IO CUInt
getGlobalContext :: IO ContextRef
getMDKindID :: CString -> CUInt -> IO CUInt
getMDKindIDInContext :: ContextRef -> CString -> CUInt -> IO CUInt
getMetadata :: ValueRef -> CUInt -> IO ValueRef
getOperand :: ValueRef -> CUInt -> IO ValueRef
getNumOperands :: ValueRef -> IO CUInt
hasMetadata :: ValueRef -> IO Bool
insertIntoBuilder :: BuilderRef -> ValueRef -> IO ()
mdNode :: (Ptr ValueRef) -> CUInt -> IO ValueRef
mdNodeInContext :: ContextRef -> (Ptr ValueRef) -> CUInt -> IO ValueRef
mdString :: CString -> CUInt -> ValueRef
mdStringInContext :: ContextRef -> CString -> CUInt -> ValueRef
replaceAllUsesWith :: ValueRef -> ValueRef -> IO ()
setCurrentDebugLocation :: BuilderRef -> ValueRef -> IO ()
setInstDebugLocation :: BuilderRef -> ValueRef -> IO ()
debugVersion :: Integral a => a
setMetadata :: ValueRef -> CUInt -> ValueRef -> IO ()
data MetadataKind
Dbg :: MetadataKind
TBAA :: MetadataKind
Prof :: MetadataKind
FPMath :: MetadataKind
Range :: MetadataKind
TBAAStruct :: MetadataKind
fromMetadataKind :: MetadataKind -> CUInt
toMetadataKind :: CUInt -> MetadataKind
getNamedMetadataNumOperands :: ModuleRef -> CString -> IO CUInt
getNamedMetadataOperands :: ModuleRef -> CString -> (Ptr ValueRef) -> IO ()
addNamedMetadataOperand :: ModuleRef -> CString -> ValueRef -> IO ()
buildBinOp :: BuilderRef -> CUInt -> ValueRef -> ValueRef -> CString -> IO ValueRef
getConstOpcode :: ValueRef -> IO CUInt
buildCast :: BuilderRef -> CUInt -> ValueRef -> TypeRef -> CString -> IO ValueRef
buildExtractValue :: BuilderRef -> ValueRef -> CUInt -> CString -> IO ValueRef
buildInsertValue :: BuilderRef -> ValueRef -> ValueRef -> CUInt -> CString -> IO ValueRef
data OpaqueUse
type UseRef = Ptr OpaqueUse
getFirstUse :: ValueRef -> IO UseRef
getNextUse :: UseRef -> IO UseRef
getNumUses :: ValueRef -> IO CUInt
getUsedValue :: UseRef -> IO ValueRef
getUser :: UseRef -> IO ValueRef
isUsedInBasicBlock :: BasicBlockRef -> ValueRef -> IO Bool
instance Typeable Module
instance Typeable ModuleProvider
instance Typeable Type
instance Typeable Value
instance Typeable CallingConvention
instance Typeable Linkage
instance Typeable Builder
instance Typeable IntPredicate
instance Typeable FPPredicate
instance Typeable MemoryBuffer
instance Typeable TypeKind
instance Typeable Attribute
instance Typeable PassManager
instance Typeable OpaqueUse
instance Typeable Context
instance Show CallingConvention
instance Eq CallingConvention
instance Ord CallingConvention
instance Enum CallingConvention
instance Bounded CallingConvention
instance Show Linkage
instance Eq Linkage
instance Ord Linkage
instance Enum Linkage
instance Show Visibility
instance Eq Visibility
instance Ord Visibility
instance Enum Visibility
instance Eq IntPredicate
instance Ord IntPredicate
instance Enum IntPredicate
instance Show IntPredicate
instance Eq FPPredicate
instance Ord FPPredicate
instance Enum FPPredicate
instance Show FPPredicate
instance Eq TypeKind
instance Ord TypeKind
instance Enum TypeKind
instance Bounded TypeKind
instance Show TypeKind
instance Read TypeKind
instance Show Attribute
instance Eq Attribute
instance Ord Attribute
instance Enum Attribute
instance Bounded Attribute
instance Show MetadataKind
instance Eq MetadataKind
instance Enum MetadataKind

module LLVM.FFI.BitReader
getBitcodeModuleProvider :: MemoryBufferRef -> (Ptr ModuleProviderRef) -> (Ptr CString) -> IO Bool
parseBitcode :: MemoryBufferRef -> (Ptr ModuleRef) -> (Ptr CString) -> IO Bool
getBitcodeModuleProviderInContext :: ContextRef -> MemoryBufferRef -> (Ptr ModuleProviderRef) -> (Ptr CString) -> IO Bool
parseBitcodeInContext :: ContextRef -> MemoryBufferRef -> (Ptr ModuleRef) -> (Ptr CString) -> IO Bool
getBitcodeModule :: MemoryBufferRef -> (Ptr ModuleRef) -> (Ptr CString) -> IO Bool
getBitcodeModuleInContext :: ContextRef -> MemoryBufferRef -> (Ptr ModuleRef) -> (Ptr CString) -> IO Bool

module LLVM.FFI.BitWriter
writeBitcodeToFile :: ModuleRef -> CString -> IO Bool
writeBitcodeToFileHandle :: ModuleRef -> CInt -> IO Bool
writeBitcodeToFD :: ModuleRef -> CInt -> Bool -> Bool -> IO Bool

module LLVM.FFI.Target
type ByteOrdering = CInt
data TargetData
type TargetDataRef = Ptr TargetData
aBIAlignmentOfType :: TargetDataRef -> TypeRef -> CUInt
aBISizeOfType :: TargetDataRef -> TypeRef -> CULLong
addTargetData :: TargetDataRef -> PassManagerRef -> IO ()
byteOrder :: TargetDataRef -> ByteOrdering
callFrameAlignmentOfType :: TargetDataRef -> TypeRef -> CUInt
copyStringRepOfTargetData :: TargetDataRef -> IO CString
createTargetData :: CString -> IO TargetDataRef
disposeTargetData :: TargetDataRef -> IO ()
elementAtOffset :: TargetDataRef -> TypeRef -> CULLong -> CUInt
intPtrType :: TargetDataRef -> TypeRef
offsetOfElement :: TargetDataRef -> TypeRef -> CUInt -> CULLong
pointerSize :: TargetDataRef -> CUInt
preferredAlignmentOfGlobal :: TargetDataRef -> ValueRef -> CUInt
preferredAlignmentOfType :: TargetDataRef -> TypeRef -> CUInt
sizeOfTypeInBits :: TargetDataRef -> TypeRef -> CULLong
storeSizeOfType :: TargetDataRef -> TypeRef -> CULLong
instance Typeable TargetData

module LLVM.FFI.ExecutionEngine
data ExecutionEngine
createExecutionEngine :: Ptr ExecutionEngineRef -> ModuleProviderRef -> Ptr CString -> IO CInt
ptrDisposeExecutionEngine :: FunPtr (ExecutionEngineRef -> IO ())
createInterpreter :: Ptr ExecutionEngineRef -> ModuleProviderRef -> Ptr CString -> IO CInt
createJITCompiler :: Ptr ExecutionEngineRef -> ModuleProviderRef -> CUInt -> Ptr CString -> IO CInt
addModuleProvider :: ExecutionEngineRef -> ModuleProviderRef -> IO ()
removeModuleProvider :: ExecutionEngineRef -> ModuleProviderRef -> Ptr ModuleRef -> Ptr CString -> IO CInt
findFunction :: ExecutionEngineRef -> CString -> Ptr ValueRef -> IO CInt
freeMachineCodeForFunction :: ExecutionEngineRef -> ValueRef -> IO ()
runStaticConstructors :: ExecutionEngineRef -> IO ()
runStaticDestructors :: ExecutionEngineRef -> IO ()
runFunction :: ExecutionEngineRef -> ValueRef -> CUInt -> Ptr GenericValueRef -> IO GenericValueRef
runFunctionAsMain :: ExecutionEngineRef -> ValueRef -> CUInt -> Ptr CString -> Ptr CString -> IO CInt
getExecutionEngineTargetData :: ExecutionEngineRef -> IO TargetDataRef
addGlobalMapping :: ExecutionEngineRef -> ValueRef -> Ptr () -> IO ()
getPointerToGlobal :: ExecutionEngineRef -> ValueRef -> IO (FunPtr a)
addModule :: ExecutionEngineRef -> ModuleRef -> IO ()
createExecutionEngineForModule :: (Ptr ExecutionEngineRef) -> ModuleRef -> (Ptr CString) -> IO Bool
createInterpreterForModule :: (Ptr ExecutionEngineRef) -> ModuleRef -> (Ptr CString) -> IO Bool
createJITCompilerForModule :: (Ptr ExecutionEngineRef) -> ModuleRef -> CUInt -> (Ptr CString) -> IO Bool
disposeExecutionEngine :: ExecutionEngineRef -> IO ()
removeModule :: ExecutionEngineRef -> ModuleRef -> (Ptr ModuleRef) -> (Ptr CString) -> IO Bool
data GenericValue
type GenericValueRef = Ptr GenericValue
createGenericValueOfInt :: TypeRef -> CULLong -> CInt -> IO GenericValueRef
genericValueToInt :: GenericValueRef -> CInt -> CULLong
genericValueIntWidth :: GenericValueRef -> IO CUInt
createGenericValueOfFloat :: TypeRef -> CDouble -> IO GenericValueRef
genericValueToFloat :: TypeRef -> GenericValueRef -> CDouble
createGenericValueOfPointer :: Ptr a -> IO GenericValueRef
genericValueToPointer :: GenericValueRef -> IO (Ptr a)
ptrDisposeGenericValue :: FunPtr (GenericValueRef -> IO ())
linkInJIT :: IO ()
instance Typeable ExecutionEngine
instance Typeable GenericValue

module LLVM.Wrapper.Target
type TargetData = TargetDataRef
data ByteOrdering
BigEndian :: ByteOrdering
LittleEndian :: ByteOrdering
byteOrder :: TargetData -> ByteOrdering
copyStringRepOfTargetData :: TargetData -> IO String
createTargetData :: String -> IO TargetData
withTargetData :: String -> (TargetData -> IO a) -> IO a
instance Eq ByteOrdering

module LLVM.FFI.Support
createStandardModulePasses :: PassManagerRef -> CUInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()
createStandardFunctionPasses :: PassManagerRef -> CUInt -> IO ()
addEmitObjectPass :: ModuleRef -> CString -> IO CUInt
disablePrettyStackTrace :: IO ()

module LLVM.FFI.Linker
data LinkerMode
DestroySource :: LinkerMode
PreserveSource :: LinkerMode
fromLinkerMode :: LinkerMode -> CUInt
toLinkerMode :: CUInt -> LinkerMode
linkModules :: ModuleRef -> ModuleRef -> CUInt -> Ptr CString -> IO Bool
instance Show LinkerMode
instance Eq LinkerMode

module LLVM.FFI.Transforms.IPO
addArgumentPromotionPass :: PassManagerRef -> IO ()
addConstantMergePass :: PassManagerRef -> IO ()
addDeadArgEliminationPass :: PassManagerRef -> IO ()
addFunctionAttrsPass :: PassManagerRef -> IO ()
addFunctionInliningPass :: PassManagerRef -> IO ()
addGlobalDCEPass :: PassManagerRef -> IO ()
addGlobalOptimizerPass :: PassManagerRef -> IO ()
addIPConstantPropagationPass :: PassManagerRef -> IO ()
addPruneEHPass :: PassManagerRef -> IO ()
addIPSCCPPass :: PassManagerRef -> IO ()
addStripDeadPrototypesPass :: PassManagerRef -> IO ()
addStripSymbolsPass :: PassManagerRef -> IO ()
addAlwaysInlinerPass :: PassManagerRef -> IO ()
addInternalizePass :: PassManagerRef -> IO ()

module LLVM.FFI.Transforms.Scalar
addCFGSimplificationPass :: PassManagerRef -> IO ()
addConstantPropagationPass :: PassManagerRef -> IO ()
addDemoteMemoryToRegisterPass :: PassManagerRef -> IO ()
addGVNPass :: PassManagerRef -> IO ()
addInstructionCombiningPass :: PassManagerRef -> IO ()
addPromoteMemoryToRegisterPass :: PassManagerRef -> IO ()
addReassociatePass :: PassManagerRef -> IO ()
addAggressiveDCEPass :: PassManagerRef -> IO ()
addDeadStoreEliminationPass :: PassManagerRef -> IO ()
addIndVarSimplifyPass :: PassManagerRef -> IO ()
addJumpThreadingPass :: PassManagerRef -> IO ()
addLICMPass :: PassManagerRef -> IO ()
addLoopDeletionPass :: PassManagerRef -> IO ()
addLoopRotatePass :: PassManagerRef -> IO ()
addLoopUnrollPass :: PassManagerRef -> IO ()
addLoopUnswitchPass :: PassManagerRef -> IO ()
addMemCpyOptPass :: PassManagerRef -> IO ()
addSCCPPass :: PassManagerRef -> IO ()
addScalarReplAggregatesPass :: PassManagerRef -> IO ()
addSimplifyLibCallsPass :: PassManagerRef -> IO ()
addTailCallEliminationPass :: PassManagerRef -> IO ()
addVerifierPass :: PassManagerRef -> IO ()
addLoopIdiomPass :: PassManagerRef -> IO ()
addScalarReplAggregatesPassSSA :: PassManagerRef -> IO ()
addScalarReplAggregatesPassWithThreshold :: PassManagerRef -> IO ()
addCorrelatedValuePropagationPass :: PassManagerRef -> IO ()
addEarlyCSEPass :: PassManagerRef -> IO ()
addLowerExpectIntrinsicPass :: PassManagerRef -> IO ()
addTypeBasedAliasAnalysisPass :: PassManagerRef -> IO ()
addBasicAliasAnalysisPass :: PassManagerRef -> IO ()

module LLVM.FFI.Transforms.PassManagerBuilder
data PassManagerBuilder
type PassManagerBuilderRef = Ptr PassManagerBuilder
passManagerBuilderCreate :: IO PassManagerBuilderRef
passManagerBuilderDispose :: PassManagerBuilderRef -> IO ()
ptrPassManagerBuilderDispose :: FunPtr (PassManagerBuilderRef -> IO ())
passManagerBuilderSetOptLevel :: PassManagerBuilderRef -> CUInt -> IO ()
passManagerBuilderSetSizeLevel :: PassManagerBuilderRef -> CUInt -> IO ()
passManagerBuilderPopulateFunctionPassManager :: PassManagerBuilderRef -> PassManagerRef -> IO ()
passManagerBuilderPopulateModulePassManager :: PassManagerBuilderRef -> PassManagerRef -> IO ()
passManagerBuilderPopulateLTOPassManager :: PassManagerBuilderRef -> PassManagerRef -> Bool -> Bool -> IO ()
instance Typeable PassManagerBuilder

module LLVM.FFI.AssemblyReader
getModuleFromAssembly :: CString -> CInt -> Ptr CString -> IO ModuleRef

module LLVM.Wrapper.Core
type Context = ForeignPtr Context
getGlobalContext :: IO Context
contextCreate :: IO Context
type MemoryBuffer = ForeignPtr MemoryBuffer
createMemoryBufferWithContentsOfFile :: FilePath -> IO MemoryBuffer
createMemoryBufferWithSTDIN :: IO MemoryBuffer
createMemoryBufferWithMemoryRange :: Ptr a -> CSize -> String -> Bool -> IO MemoryBuffer
createMemoryBufferWithMemoryRangeCopy :: Ptr a -> CSize -> String -> IO MemoryBuffer
data Module
moduleCreateWithName :: String -> IO Module
moduleCreateWithNameInContext :: String -> Context -> IO Module
printModuleToFile :: Module -> FilePath -> IO ()
dumpModule :: Module -> IO ()
type Type = TypeRef
intTypeInContext :: Context -> CUInt -> IO Type
floatTypeInContext :: Context -> IO Type
doubleTypeInContext :: Context -> IO Type
x86FP80TypeInContext :: Context -> IO Type
voidTypeInContext :: Context -> IO Type
functionType :: Type -> [Type] -> Bool -> Type
structType :: [Type] -> Bool -> Type
structTypeInContext :: Context -> [Type] -> Bool -> IO Type
structCreateNamed :: String -> IO Type
structCreateNamedInContext :: Context -> String -> IO Type
structSetBody :: Type -> [Type] -> Bool -> IO ()
getTypeByName :: Module -> String -> IO (Maybe Type)
type Value = ValueRef
getValueName :: Value -> IO String
setValueName :: Value -> String -> IO ()
getGC :: Value -> IO String
setGC :: Value -> String -> IO ()
getLinkage :: Value -> IO Linkage
setLinkage :: Value -> Linkage -> IO ()
constStructInContext :: Context -> [Value] -> Bool -> IO Value
constRealOfString :: Type -> String -> Value
constString :: String -> Bool -> Value
constStringInContext :: Context -> String -> Bool -> IO Value
addGlobal :: Module -> Type -> String -> IO Value
getNamedGlobal :: Module -> String -> IO (Maybe Value)
buildGlobalString :: Builder -> String -> String -> IO Value
buildGlobalStringPtr :: Builder -> String -> String -> IO Value
data PassManager
createPassManager :: IO PassManager
runPassManager :: PassManager -> Module -> IO Bool
createFunctionPassManagerForModule :: Module -> IO PassManager
initializeFunctionPassManager :: PassManager -> IO Bool
runFunctionPassManager :: PassManager -> Value -> IO Bool
finalizeFunctionPassManager :: PassManager -> IO Bool
addFunction :: Module -> String -> Type -> IO Value
getNamedFunction :: Module -> String -> IO (Maybe Value)
getParams :: Value -> IO [Value]
getFunctionCallConv :: Value -> IO CallingConvention
setFunctionCallConv :: Value -> CallingConvention -> IO ()
getInstructionCallConv :: Value -> IO CallingConvention
setInstructionCallConv :: Value -> CallingConvention -> IO ()
addAttribute :: Value -> Attribute -> IO ()
removeAttribute :: Value -> Attribute -> IO ()
addFunctionAttr :: Value -> Attribute -> IO ()
setMetadata :: Value -> MetadataKind -> Value -> IO ()
getMetadata :: Value -> MetadataKind -> IO Value
getNamedMetadataOperands :: Module -> String -> IO [Value]
addNamedMetadataOperand :: Module -> String -> Value -> IO ()
mdNode :: [Value] -> IO Value
mdString :: String -> Value
type BasicBlock = BasicBlockRef
appendBasicBlock :: Value -> String -> IO BasicBlock
appendBasicBlockInContext :: Context -> Value -> String -> IO BasicBlock
getBasicBlocks :: Value -> IO [BasicBlock]
getNextBasicBlock :: BasicBlock -> IO (Maybe BasicBlock)
type Builder = ForeignPtr Builder
createBuilder :: IO Builder
createBuilderInContext :: Context -> IO Builder
getCurrentDebugLocation :: ForeignPtr Builder -> IO ValueRef
setCurrentDebugLocation :: ForeignPtr Builder -> ValueRef -> IO ()
setInstDebugLocation :: ForeignPtr Builder -> ValueRef -> IO ()
getInsertBlock :: ForeignPtr Builder -> IO BasicBlockRef
positionBuilder :: ForeignPtr Builder -> BasicBlockRef -> ValueRef -> IO ()
positionBefore :: ForeignPtr Builder -> ValueRef -> IO ()
positionAtEnd :: ForeignPtr Builder -> BasicBlockRef -> IO ()
buildRetVoid :: ForeignPtr Builder -> IO ValueRef
buildRet :: ForeignPtr Builder -> ValueRef -> IO ValueRef
buildBr :: ForeignPtr Builder -> BasicBlockRef -> IO ValueRef
buildIndirectBr :: ForeignPtr Builder -> ValueRef -> CUInt -> IO ValueRef
buildCondBr :: ForeignPtr Builder -> ValueRef -> BasicBlockRef -> BasicBlockRef -> IO ValueRef
buildSwitch :: ForeignPtr Builder -> ValueRef -> BasicBlockRef -> CUInt -> IO ValueRef
buildUnreachable :: ForeignPtr Builder -> IO ValueRef
buildAdd :: Builder -> Value -> Value -> String -> IO Value
buildSub :: Builder -> Value -> Value -> String -> IO Value
buildMul :: Builder -> Value -> Value -> String -> IO Value
buildFAdd :: Builder -> Value -> Value -> String -> IO Value
buildFMul :: Builder -> Value -> Value -> String -> IO Value
buildFPCast :: Builder -> Value -> Type -> String -> IO Value
buildFSub :: Builder -> Value -> Value -> String -> IO Value
buildUDiv :: Builder -> Value -> Value -> String -> IO Value
buildSDiv :: Builder -> Value -> Value -> String -> IO Value
buildExactSDiv :: Builder -> Value -> Value -> String -> IO Value
buildFDiv :: Builder -> Value -> Value -> String -> IO Value
buildURem :: Builder -> Value -> Value -> String -> IO Value
buildSRem :: Builder -> Value -> Value -> String -> IO Value
buildFRem :: Builder -> Value -> Value -> String -> IO Value
buildShl :: Builder -> Value -> Value -> String -> IO Value
buildLShr :: Builder -> Value -> Value -> String -> IO Value
buildAShr :: Builder -> Value -> Value -> String -> IO Value
buildAnd :: Builder -> Value -> Value -> String -> IO Value
buildOr :: Builder -> Value -> Value -> String -> IO Value
buildXor :: Builder -> Value -> Value -> String -> IO Value
buildNeg :: Builder -> Value -> String -> IO Value
buildFNeg :: Builder -> Value -> String -> IO Value
buildNot :: Builder -> Value -> String -> IO Value
buildNSWAdd :: Builder -> Value -> Value -> String -> IO Value
buildNSWMul :: Builder -> Value -> Value -> String -> IO Value
buildNSWNeg :: Builder -> Value -> String -> IO Value
buildNSWSub :: Builder -> Value -> Value -> String -> IO Value
buildNUWAdd :: Builder -> Value -> Value -> String -> IO Value
buildNUWMul :: Builder -> Value -> Value -> String -> IO Value
buildNUWNeg :: Builder -> Value -> String -> IO Value
buildNUWSub :: Builder -> Value -> Value -> String -> IO Value
buildFCmp :: Builder -> FPPredicate -> Value -> Value -> String -> IO Value
buildICmp :: Builder -> IntPredicate -> Value -> Value -> String -> IO Value
buildAlloca :: Builder -> Type -> String -> IO Value
buildLoad :: Builder -> Value -> String -> IO Value
buildStructGEP :: Builder -> Value -> CUInt -> String -> IO Value
buildInBoundsGEP :: Builder -> Value -> [Value] -> String -> IO Value
constGEP :: Value -> [Value] -> IO Value
buildStore :: ForeignPtr Builder -> ValueRef -> ValueRef -> IO ValueRef
buildTrunc :: Builder -> Value -> Type -> String -> IO Value
buildZExt :: Builder -> Value -> Type -> String -> IO Value
buildSExt :: Builder -> Value -> Type -> String -> IO Value
buildFPToUI :: Builder -> Value -> Type -> String -> IO Value
buildFPToSI :: Builder -> Value -> Type -> String -> IO Value
buildUIToFP :: Builder -> Value -> Type -> String -> IO Value
buildSIToFP :: Builder -> Value -> Type -> String -> IO Value
buildFPTrunc :: Builder -> Value -> Type -> String -> IO Value
buildFPExt :: Builder -> Value -> Type -> String -> IO Value
buildPtrToInt :: Builder -> Value -> Type -> String -> IO Value
buildIntToPtr :: Builder -> Value -> Type -> String -> IO Value
buildBitCast :: Builder -> Value -> Type -> String -> IO Value
buildPointerCast :: Builder -> Value -> Type -> String -> IO Value
buildTruncOrBitCast :: Builder -> Value -> Type -> String -> IO Value
buildZExtOrBitCast :: Builder -> Value -> Type -> String -> IO Value
buildSExtOrBitCast :: Builder -> Value -> Type -> String -> IO Value

-- | Haskell type representing the C <tt>unsigned int</tt> type.
data CUInt :: *

-- | Haskell type representing the C <tt>unsigned long long</tt> type.
data CULLong :: *

-- | Haskell type representing the C <tt>size_t</tt> type.
data CSize :: *
buildPhi :: Builder -> Type -> String -> IO Value
addIncoming :: Value -> [(Value, BasicBlock)] -> IO ()
buildCall :: Builder -> Value -> [Value] -> String -> IO Value
buildSelect :: Builder -> Value -> Value -> Value -> String -> IO Value
isUnreachable :: Value -> IO Bool
dumpModuleToString :: Module -> IO String
dumpValueToString :: Value -> IO String
dumpTypeToString :: Type -> IO String

module LLVM.Wrapper.BitReader
parseBitcodeInContext :: Context -> MemoryBuffer -> IO (Either String Module)

module LLVM.Wrapper.BitWriter
writeBitcodeToFile :: Module -> FilePath -> IO ()

module LLVM.Wrapper.Transforms.PassManagerBuilder
passManagerBuilderCreate :: IO PassManagerBuilder
passManagerBuilderSetOptLevel :: PassManagerBuilder -> CUInt -> IO ()
passManagerBuilderSetSizeLevel :: PassManagerBuilder -> CUInt -> IO ()
passManagerBuilderPopulateFunctionPassManager :: PassManagerBuilder -> PassManager -> IO ()
passManagerBuilderPopulateModulePassManager :: PassManagerBuilder -> PassManager -> IO ()
passManagerBuilderPopulateLTOPassManager :: PassManagerBuilder -> PassManager -> Bool -> Bool -> IO ()

module LLVM.Wrapper.ExecutionEngine
type ExecutionEngine = Ptr ExecutionEngine
findFunction :: ExecutionEngine -> String -> IO (Maybe Value)
runFunction :: ExecutionEngine -> Value -> CUInt -> [GenericValue] -> IO GenericValue
runFunctionAsMain :: ExecutionEngine -> Value -> [String] -> [String] -> IO Bool
createExecutionEngineForModule :: Module -> IO ExecutionEngine
createInterpreterForModule :: Module -> IO ExecutionEngine
createJITCompilerForModule :: Module -> CUInt -> IO ExecutionEngine
createGenericValueOfInt :: Type -> CULLong -> Bool -> IO GenericValue
genericValueToInt :: GenericValue -> Bool -> CULLong

module LLVM.Wrapper.Linker
data LinkerMode
DestroySource :: LinkerMode
PreserveSource :: LinkerMode
linkModules :: Module -> Module -> LinkerMode -> IO (Maybe String)

module LLVM.FFI.Analysis
type VerifierFailureAction = CInt
verifyFunction :: ValueRef -> VerifierFailureAction -> IO Bool
verifyModule :: ModuleRef -> VerifierFailureAction -> (Ptr CString) -> IO Bool
viewFunctionCFG :: ValueRef -> IO ()
viewFunctionCFGOnly :: ValueRef -> IO ()

module LLVM.Wrapper.Analysis
verifyFunction :: Value -> IO Bool
verifyModule :: Module -> IO (Maybe String)

module LLVM.ST

-- | Haskell type representing the C <tt>unsigned int</tt> type.
data CUInt :: *

-- | Haskell type representing the C <tt>unsigned long long</tt> type.
data CULLong :: *
data IntPredicate

-- | equal
IntEQ :: IntPredicate

-- | not equal
IntNE :: IntPredicate

-- | unsigned greater than
IntUGT :: IntPredicate

-- | unsigned greater or equal
IntUGE :: IntPredicate

-- | unsigned less than
IntULT :: IntPredicate

-- | unsigned less or equal
IntULE :: IntPredicate

-- | signed greater than
IntSGT :: IntPredicate

-- | signed greater or equal
IntSGE :: IntPredicate

-- | signed less than
IntSLT :: IntPredicate

-- | signed less or equal
IntSLE :: IntPredicate
data FPPredicate

-- | Always false (always folded)
FPFalse :: FPPredicate

-- | True if ordered and equal
FPOEQ :: FPPredicate

-- | True if ordered and greater than
FPOGT :: FPPredicate

-- | True if ordered and greater than or equal
FPOGE :: FPPredicate

-- | True if ordered and less than
FPOLT :: FPPredicate

-- | True if ordered and less than or equal
FPOLE :: FPPredicate

-- | True if ordered and operands are unequal
FPONE :: FPPredicate

-- | True if ordered (no nans)
FPORD :: FPPredicate

-- | True if unordered: isnan(X) | isnan(Y)
FPUNO :: FPPredicate

-- | True if unordered or equal
FPUEQ :: FPPredicate

-- | True if unordered or greater than
FPUGT :: FPPredicate

-- | True if unordered, greater than, or equal
FPUGE :: FPPredicate

-- | True if unordered or less than
FPULT :: FPPredicate

-- | True if unordered, less than, or equal
FPULE :: FPPredicate

-- | True if unordered or not equal
FPUNE :: FPPredicate

-- | Always true (always folded)
FPT :: FPPredicate
data LLVM c s a
class MonadLLVM m
getContext :: MonadLLVM m => m c s Context
liftLL :: MonadLLVM m => LLVM c s a -> m c s a
liftST :: MonadLLVM m => ST s a -> m c s a
type MemoryBuffer = ForeignPtr MemoryBuffer
createMemoryBufferWithContentsOfFile :: FilePath -> IO MemoryBuffer
createMemoryBufferWithSTDIN :: IO MemoryBuffer
createMemoryBufferWithMemoryRange :: Ptr a -> CSize -> String -> Bool -> IO MemoryBuffer
createMemoryBufferWithMemoryRangeCopy :: Ptr a -> CSize -> String -> IO MemoryBuffer
run :: Context -> (forall c s. LLVM c s (STModule c s)) -> Module
run2 :: Context -> (forall c s. LLVM c s (STModule c s, a)) -> (Module, a)
runLLVM :: Context -> (forall c. LLVM c s a) -> ST s a
type Context = ForeignPtr Context
getGlobalContext :: IO Context
contextCreate :: IO Context
data STPassManager c s
createPassManager :: (Functor (m c s), MonadLLVM m) => m c s (STPassManager c s)
populateModulePassManager :: MonadLLVM m => CUInt -> CUInt -> STPassManager c s -> m c s ()
populateLTOPassManager :: MonadLLVM m => CUInt -> CUInt -> Bool -> Bool -> STPassManager c s -> m c s ()
runPassManager :: MonadLLVM m => STPassManager c s -> STModule c s -> m c s Bool
data ModuleGen c s a
class MonadLLVM m => MonadMG m
liftMG :: MonadMG m => ModuleGen c s a -> m c s a
runModuleGen :: (Monad (m c s), MonadLLVM m) => STModule c s -> ModuleGen c s a -> m c s a
data STModule c s
data Module
unsafeFreeze :: (Monad (m c s), MonadLLVM m) => STModule c s -> m c s Module
unsafeThaw :: (Monad (m c s), MonadLLVM m) => Module -> m c s (STModule c s)
parseBitcode :: (Functor (m c s), Monad (m c s), MonadLLVM m) => MemoryBuffer -> m c s (Either String (STModule c s))
writeBitcodeToFile :: Module -> FilePath -> IO ()
getModule :: MonadMG m => m c s (STModule c s)
genModule :: (Monad (m c s), MonadLLVM m) => String -> ModuleGen c s a -> m c s a
verifyModule :: Module -> Maybe String
showModule :: (Monad (m c s), MonadLLVM m) => STModule c s -> m c s String
linkModules :: (Monad (m c s), MonadLLVM m) => STModule c s -> STModule c s -> m c s (Maybe String)
data STBasicBlock c s
appendBasicBlock :: (Monad (m c s), MonadLLVM m) => String -> STValue c s -> m c s (STBasicBlock c s)
data STValue c s

-- | An enumeration for the kinds of linkage for global values.
data Linkage

-- | Externally visible function
ExternalLinkage :: Linkage
AvailableExternallyLinkage :: Linkage

-- | Keep one copy of function when linking (inline)
LinkOnceAnyLinkage :: Linkage

-- | Same, but only replaced by something equivalent.
LinkOnceODRLinkage :: Linkage

-- | Keep one copy of named function when linking (weak)
WeakAnyLinkage :: Linkage

-- | Same, but only replaced by something equivalent.
WeakODRLinkage :: Linkage

-- | Special purpose, only applies to global arrays
AppendingLinkage :: Linkage

-- | Rename collisions when linking (static functions)
InternalLinkage :: Linkage

-- | Like Internal, but omit from symbol table
PrivateLinkage :: Linkage

-- | Function to be imported from DLL
DLLImportLinkage :: Linkage

-- | Function to be accessible from DLL
DLLExportLinkage :: Linkage

-- | ExternalWeak linkage description
ExternalWeakLinkage :: Linkage

-- | Stand-in functions for streaming fns from BC files
GhostLinkage :: Linkage

-- | Tentative definitions
CommonLinkage :: Linkage

-- | Like Private, but linker removes.
LinkerPrivateLinkage :: Linkage
data Attribute
ZExtAttribute :: Attribute
SExtAttribute :: Attribute
NoReturnAttribute :: Attribute
InRegAttribute :: Attribute
StructRetAttribute :: Attribute
NoUnwindAttribute :: Attribute
NoAliasAttribute :: Attribute
ByValAttribute :: Attribute
NestAttribute :: Attribute
ReadNoneAttribute :: Attribute
ReadOnlyAttribute :: Attribute
NoInlineAttribute :: Attribute
AlwaysInlineAttribute :: Attribute
OptimizeForSizeAttribute :: Attribute
StackProtectAttribute :: Attribute
StackProtectReqAttribute :: Attribute
NoCaptureAttribute :: Attribute
NoRedZoneAttribute :: Attribute
NoImplicitFloatAttribute :: Attribute
NakedAttribute :: Attribute
data CallingConvention
C :: CallingConvention
Fast :: CallingConvention
Cold :: CallingConvention
X86StdCall :: CallingConvention
X86FastCall :: CallingConvention
GHC :: CallingConvention
showValue :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s String
typeOf :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s (STType c s)
findGlobal :: MonadMG m => String -> m c s (Maybe (STValue c s))
findFunction :: MonadMG m => String -> m c s (Maybe (STValue c s))
addFunction :: MonadMG m => String -> STType c s -> m c s (STValue c s)
genFunction :: (Functor (m c s), Monad (m c s), MonadMG m) => String -> STType c s -> CodeGen c s a -> m c s a
defineFunction :: (Functor (m c s), Monad (m c s), MonadMG m) => STValue c s -> CodeGen c s a -> m c s a
runCodeGen :: (Monad (m c s), MonadMG m) => STValue c s -> CodeGen c s a -> ModuleGen c s a
getFuncCallConv :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s CallingConvention
setFuncCallConv :: (Monad (m c s), MonadLLVM m) => STValue c s -> CallingConvention -> m c s ()
setInstrCallConv :: (Monad (m c s), MonadLLVM m) => STValue c s -> CallingConvention -> m c s ()
getFunctionParams :: (Functor (m c s), Monad (m c s), MonadLLVM m) => STValue c s -> m c s [STValue c s]
addParamAttrib :: (Monad (m c s), MonadLLVM m) => STValue c s -> Attribute -> m c s ()
addFuncAttrib :: (Monad (m c s), MonadLLVM m) => STValue c s -> Attribute -> m c s ()
removeAttrib :: (Monad (m c s), MonadLLVM m) => STValue c s -> Attribute -> m c s ()
getLinkage :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Linkage
setLinkage :: (Monad (m c s), MonadLLVM m) => STValue c s -> Linkage -> m c s ()
getTailCall :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Bool
setTailCall :: (Monad (m c s), MonadLLVM m) => STValue c s -> Bool -> m c s ()
verifyFunction :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Bool
getUndef :: (Monad (m c s), MonadLLVM m) => STType c s -> m c s (STValue c s)
isConstant :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Bool
isNull :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Bool
isUndef :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Bool
isUnreachable :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s Bool
constInt :: (Monad (m c s), MonadLLVM m) => STType c s -> CULLong -> Bool -> m c s (STValue c s)
constPtrNull :: (Monad (m c s), MonadLLVM m) => STType c s -> m c s (STValue c s)
constString :: (Monad (m c s), MonadLLVM m) => String -> Bool -> m c s (STValue c s)
constStruct :: (Monad (m c s), MonadLLVM m) => [STValue c s] -> Bool -> m c s (STValue c s)
data STType c s
data TypeKind
VoidTypeKind :: TypeKind
HalfTypeKind :: TypeKind
FloatTypeKind :: TypeKind
DoubleTypeKind :: TypeKind
X86_FP80TypeKind :: TypeKind
FP128TypeKind :: TypeKind
PPC_FP128TypeKind :: TypeKind
LabelTypeKind :: TypeKind
IntegerTypeKind :: TypeKind
FunctionTypeKind :: TypeKind
StructTypeKind :: TypeKind
ArrayTypeKind :: TypeKind
PointerTypeKind :: TypeKind
VectorTypeKind :: TypeKind
MetadataTypeKind :: TypeKind
X86_MMXTypeKind :: TypeKind
typeKind :: (Monad (m c s), MonadLLVM m) => STType c s -> m c s TypeKind
showType :: (Monad (m c s), MonadLLVM m) => STType c s -> m c s String
findType :: MonadMG m => String -> m c s (Maybe (STType c s))
sizeOf :: (Monad (m c s), MonadLLVM m) => STType c s -> m c s (STValue c s)
intType :: (Monad (m c s), MonadLLVM m) => CUInt -> m c s (STType c s)
floatType :: (Monad (m c s), MonadLLVM m) => m c s (STType c s)
doubleType :: (Monad (m c s), MonadLLVM m) => m c s (STType c s)
voidType :: (Monad (m c s), MonadLLVM m) => m c s (STType c s)
functionType :: (Monad (m c s), MonadLLVM m) => STType c s -> [STType c s] -> Bool -> m c s (STType c s)
structType :: (Monad (m c s), MonadLLVM m) => [STType c s] -> Bool -> m c s (STType c s)
vectorType :: (Monad (m c s), MonadLLVM m) => STType c s -> CUInt -> m c s (STType c s)
arrayType :: (Monad (m c s), MonadLLVM m) => STType c s -> CUInt -> m c s (STType c s)
pointerTypeInSpace :: (Monad (m c s), MonadLLVM m) => STType c s -> CUInt -> m c s (STType c s)
pointerType :: (Monad (m c s), MonadLLVM m) => STType c s -> m c s (STType c s)
structCreateNamed :: (Monad (m c s), MonadLLVM m) => String -> m c s (STType c s)
structSetBody :: (Monad (m c s), MonadLLVM m) => STType c s -> [STType c s] -> Bool -> m c s ()
data CodeGen c s a
class MonadMG m => MonadCG m
liftCG :: MonadCG m => CodeGen c s a -> m c s a
position :: MonadCG m => STBasicBlock c s -> STValue c s -> m c s ()
positionAtEnd :: MonadCG m => STBasicBlock c s -> m c s ()
positionBefore :: MonadCG m => STValue c s -> m c s ()
positionAfter :: MonadCG m => STValue c s -> m c s ()
getEntryBasicBlock :: MonadLLVM m => STValue c s -> m c s (STBasicBlock c s)
getNextBasicBlock :: MonadLLVM m => STBasicBlock c s -> m c s (Maybe (STBasicBlock c s))
getFirstInstruction :: MonadLLVM m => STBasicBlock c s -> m c s (STValue c s)
getNextInstruction :: MonadLLVM m => STValue c s -> m c s (STValue c s)
getPreviousInstruction :: MonadLLVM m => STValue c s -> m c s (STValue c s)
getLastInstruction :: MonadLLVM m => STBasicBlock c s -> m c s (STValue c s)
getInsertBlock :: MonadCG m => m c s (STBasicBlock c s)
getFunction :: MonadCG m => m c s (STValue c s)
getParams :: MonadCG m => m c s [STValue c s]
getValueName :: (Monad (m c s), MonadLLVM m) => STValue c s -> m c s String
setValueName :: (Monad (m c s), MonadLLVM m) => STValue c s -> String -> m c s ()
buildTrunc :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildZExt :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildSExt :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildFPToUI :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildFPToSI :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildUIToFP :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildSIToFP :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildFPTrunc :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildFPExt :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildPtrToInt :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildIntToPtr :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildBitCast :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildPointerCast :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildTruncOrBitCast :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildZExtOrBitCast :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildSExtOrBitCast :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildInBoundsGEP :: (Monad (m c s), MonadCG m) => String -> STValue c s -> [STValue c s] -> m c s (STValue c s)
buildAlloca :: (Monad (m c s), MonadCG m) => String -> STType c s -> m c s (STValue c s)
buildLoad :: (Monad (m c s), MonadCG m) => String -> STValue c s -> m c s (STValue c s)
buildStore :: (Monad (m c s), MonadCG m) => STValue c s -> STValue c s -> m c s (STValue c s)
buildCall :: (Monad (m c s), MonadCG m) => String -> STValue c s -> [STValue c s] -> m c s (STValue c s)
buildBr :: (Monad (m c s), MonadCG m) => STBasicBlock c s -> m c s (STValue c s)
buildCondBr :: (Monad (m c s), MonadCG m) => STValue c s -> STBasicBlock c s -> STBasicBlock c s -> m c s (STValue c s)
buildSwitch :: (Monad (m c s), MonadCG m) => STValue c s -> STBasicBlock c s -> CUInt -> m c s (STValue c s)
addCase :: (Monad (m c s), MonadCG m) => STValue c s -> STValue c s -> STBasicBlock c b -> m c s ()
buildPhi :: (Monad (m c s), MonadCG m) => String -> STType c s -> m c s (STValue c s)
addIncoming :: (Monad (m c s), MonadCG m) => STValue c s -> [(STValue c s, STBasicBlock c s)] -> m c s ()
buildCase :: (Functor (m c s), Monad (m c s), MonadCG m) => STValue c s -> m c s (STValue c s) -> [(STValue c s, m c s (STValue c s))] -> m c s (STValue c s)
buildIf :: (Monad (m c s), MonadCG m) => STType c s -> STValue c s -> m c s (STValue c s) -> m c s (STValue c s) -> m c s (STValue c s)
buildRet :: (Monad (m c s), MonadCG m) => STValue c s -> m c s (STValue c s)
buildUnreachable :: (Monad (m c s), MonadCG m) => m c s (STValue c s)
buildAdd :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildSub :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildMul :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildFAdd :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildFMul :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildFPCast :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STType c s -> m c s (STValue c s)
buildFSub :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildUDiv :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildSDiv :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildExactSDiv :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildFDiv :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildURem :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildSRem :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildFRem :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildShl :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildLShr :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildAShr :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildAnd :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildOr :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildXor :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildNeg :: (Monad (m c s), MonadCG m) => String -> STValue c s -> m c s (STValue c s)
buildFNeg :: (Monad (m c s), MonadCG m) => String -> STValue c s -> m c s (STValue c s)
buildNot :: (Monad (m c s), MonadCG m) => String -> STValue c s -> m c s (STValue c s)
buildNSWAdd :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildNSWMul :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildNSWNeg :: (Monad (m c s), MonadCG m) => String -> STValue c s -> m c s (STValue c s)
buildNSWSub :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildNUWAdd :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildNUWMul :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildNUWNeg :: (Monad (m c s), MonadCG m) => String -> STValue c s -> m c s (STValue c s)
buildNUWSub :: (Monad (m c s), MonadCG m) => String -> STValue c s -> STValue c s -> m c s (STValue c s)
buildICmp :: (Monad (m c s), MonadCG m) => String -> IntPredicate -> STValue c s -> STValue c s -> m c s (STValue c s)
buildFCmp :: (Monad (m c s), MonadCG m) => String -> FPPredicate -> STValue c s -> STValue c s -> m c s (STValue c s)
buildGlobalString :: (Monad (m c s), MonadCG m) => String -> String -> m c s (STValue c s)
buildGlobalStringPtr :: (Monad (m c s), MonadCG m) => String -> String -> m c s (STValue c s)
constAdd :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constSub :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constMul :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constFAdd :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constFMul :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constFPCast :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constFSub :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constUDiv :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constSDiv :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constFDiv :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constURem :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constSRem :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constFRem :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constAnd :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constOr :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constXor :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constShl :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constLShr :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constAShr :: (Monad (m c s), MonadLLVM m) => STValue c s -> STValue c s -> m c s (STValue c s)
constGEP :: (Monad (m c s), MonadCG m) => STValue c s -> [STValue c s] -> m c s (STValue c s)
constTrunc :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constSExt :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constZExt :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constFPTrunc :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constFPExt :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constUIToFP :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constSIToFP :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constFPToUI :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constFPToSI :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constPtrToInt :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constIntToPtr :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
constBitCast :: (Monad (m c s), MonadLLVM m) => STValue c s -> STType c s -> m c s (STValue c s)
instance Eq (STPassManager c s)
instance Eq Module
instance Eq (STModule c s)
instance Eq (STBasicBlock c s)
instance Eq (STType c s)
instance Eq (STValue c s)
instance Functor (LLVM c s)
instance Applicative (LLVM c s)
instance Monad (LLVM c s)
instance Functor (ModuleGen c s)
instance Applicative (ModuleGen c s)
instance Monad (ModuleGen c s)
instance Functor (CodeGen c s)
instance Applicative (CodeGen c s)
instance Monad (CodeGen c s)
instance MonadCG CodeGen
instance MonadMG CodeGen
instance MonadLLVM CodeGen
instance MonadMG ModuleGen
instance MonadLLVM ModuleGen
instance MonadReader (STModule c s) (ModuleGen c s)
instance MonadLLVM LLVM
instance Show Module
