LIBRARY backend
EXPORTS
;BitReader.h
;/* Builds a module from the bitcode in the specified memory buffer, returning a
;   reference to the module via the OutModule parameter. Returns 0 on success.
;   Optionally returns a human-readable error message via OutMessage. */ 
_LLVMParseBitcode = LLVMParseBitcode
;/* Reads a module from the specified path, returning via the OutMP parameter
;   a module provider which performs lazy deserialization. Returns 0 on success.
;   Optionally returns a human-readable error message via OutMessage. */ 
_LLVMGetBitcodeModuleProvider = LLVMGetBitcodeModuleProvider
;BitWriter.h
_LLVMWriteBitcodeToFileHandle = LLVMWriteBitcodeToFileHandle
_LLVMWriteBitcodeToFile = LLVMWriteBitcodeToFile
;Core.h
;/*===-- Error handling ----------------------------------------------------===*/
_LLVMDisposeMessage = LLVMDisposeMessage
;/** See llvm::Module::Module. */
_LLVMModuleCreateWithName = LLVMModuleCreateWithName
;/** See llvm::Module::~Module. */
_LLVMDisposeModule = LLVMDisposeModule
;/** Data layout. See Module::getDataLayout. */
_LLVMGetDataLayout = LLVMGetDataLayout
_LLVMSetDataLayout = LLVMSetDataLayout
;/** Target triple. See Module::getTargetTriple. */
_LLVMGetTarget = LLVMGetTarget
_LLVMSetTarget = LLVMSetTarget
;/** See Module::addTypeName. */
_LLVMAddTypeName = LLVMAddTypeName
_LLVMDeleteTypeName = LLVMDeleteTypeName
;/** See Module::dump. */
_LLVMDumpModule = LLVMDumpModule
;/** See llvm::LLVMTypeKind::getTypeID. */
_LLVMGetTypeKind = LLVMGetTypeKind
;/* Operations on integer types */
_LLVMInt1Type = LLVMInt1Type
_LLVMInt8Type = LLVMInt8Type
_LLVMInt16Type = LLVMInt16Type
_LLVMInt32Type = LLVMInt32Type
_LLVMInt64Type = LLVMInt64Type
_LLVMIntType = LLVMIntType
_LLVMGetIntTypeWidth = LLVMGetIntTypeWidth
;/* Operations on real types */
_LLVMFloatType = LLVMFloatType
_LLVMDoubleType = LLVMDoubleType
_LLVMX86FP80Type = LLVMX86FP80Type
_LLVMFP128Type = LLVMFP128Type
_LLVMPPCFP128Type = LLVMPPCFP128Type
;/* Operations on function types */
_LLVMFunctionType = LLVMFunctionType
_LLVMIsFunctionVarArg = LLVMIsFunctionVarArg
_LLVMGetReturnType = LLVMGetReturnType
_LLVMCountParamTypes = LLVMCountParamTypes
_LLVMGetParamTypes = LLVMGetParamTypes
;/* Operations on struct types */
_LLVMStructType = LLVMStructType
_LLVMCountStructElementTypes = LLVMCountStructElementTypes
_LLVMGetStructElementTypes = LLVMGetStructElementTypes
_LLVMIsPackedStruct = LLVMIsPackedStruct
;/* Operations on array, pointer, and vector types (sequence types) */
_LLVMArrayType = LLVMArrayType
_LLVMPointerType = LLVMPointerType
_LLVMVectorType = LLVMVectorType
_LLVMGetElementType = LLVMGetElementType
_LLVMGetArrayLength = LLVMGetArrayLength
_LLVMGetPointerAddressSpace = LLVMGetPointerAddressSpace
_LLVMGetVectorSize = LLVMGetVectorSize
;/* Operations on other types */
_LLVMVoidType = LLVMVoidType
_LLVMLabelType = LLVMLabelType
_LLVMOpaqueType = LLVMOpaqueType
;/* Operations on type handles */
_LLVMCreateTypeHandle = LLVMCreateTypeHandle
_LLVMRefineType = LLVMRefineType
_LLVMResolveTypeHandle = LLVMResolveTypeHandle
_LLVMDisposeTypeHandle = LLVMDisposeTypeHandle
;/*===-- Values ------------------------------------------------------------===*/
;/* The bulk of LLVM's object model consists of values, which comprise a very
; * rich type hierarchy.
; * 
; *   values:
; *     constants:
; *       scalar constants
; *       composite contants
; *       globals:
; *         global variable
; *         function
; *         alias
; *       basic blocks
; */
;/* Operations on all values */
_LLVMTypeOf = LLVMTypeOf
_LLVMGetValueName = LLVMGetValueName
_LLVMSetValueName = LLVMSetValueName
_LLVMDumpValue = LLVMDumpValue
;/* Operations on constants of any type */
;/* all zeroes */
_LLVMConstNull  = LLVMConstNull 
;/* only for int/vector */
_LLVMConstAllOnes  = LLVMConstAllOnes 
_LLVMGetUndef = LLVMGetUndef
_LLVMIsConstant = LLVMIsConstant
_LLVMIsNull = LLVMIsNull
_LLVMIsUndef = LLVMIsUndef
;/* Operations on scalar constants */
_LLVMConstInt = LLVMConstInt
_LLVMConstReal = LLVMConstReal
_LLVMConstRealOfString = LLVMConstRealOfString
;/* Operations on composite constants */
_LLVMConstString = LLVMConstString
_LLVMConstArray = LLVMConstArray
_LLVMConstStruct = LLVMConstStruct
_LLVMConstVector = LLVMConstVector
;/* Constant expressions */
_LLVMSizeOf = LLVMSizeOf
_LLVMConstNeg = LLVMConstNeg
_LLVMConstNot = LLVMConstNot
_LLVMConstAdd = LLVMConstAdd
_LLVMConstSub = LLVMConstSub
_LLVMConstMul = LLVMConstMul
_LLVMConstUDiv = LLVMConstUDiv
_LLVMConstSDiv = LLVMConstSDiv
_LLVMConstFDiv = LLVMConstFDiv
_LLVMConstURem = LLVMConstURem
_LLVMConstSRem = LLVMConstSRem
_LLVMConstFRem = LLVMConstFRem
_LLVMConstAnd = LLVMConstAnd
_LLVMConstOr = LLVMConstOr
_LLVMConstXor = LLVMConstXor
_LLVMConstICmp = LLVMConstICmp
_LLVMConstFCmp = LLVMConstFCmp
_LLVMConstShl = LLVMConstShl
_LLVMConstLShr = LLVMConstLShr
_LLVMConstAShr = LLVMConstAShr
_LLVMConstGEP = LLVMConstGEP
_LLVMConstTrunc = LLVMConstTrunc
_LLVMConstSExt = LLVMConstSExt
_LLVMConstZExt = LLVMConstZExt
_LLVMConstFPTrunc = LLVMConstFPTrunc
_LLVMConstFPExt = LLVMConstFPExt
_LLVMConstUIToFP = LLVMConstUIToFP
_LLVMConstSIToFP = LLVMConstSIToFP
_LLVMConstFPToUI = LLVMConstFPToUI
_LLVMConstFPToSI = LLVMConstFPToSI
_LLVMConstPtrToInt = LLVMConstPtrToInt
_LLVMConstIntToPtr = LLVMConstIntToPtr
_LLVMConstBitCast = LLVMConstBitCast
_LLVMConstSelect = LLVMConstSelect
_LLVMConstExtractElement = LLVMConstExtractElement
_LLVMConstInsertElement = LLVMConstInsertElement
_LLVMConstShuffleVector = LLVMConstShuffleVector
;/* Operations on global variables, functions, and aliases (globals) */
_LLVMGetGlobalParent = LLVMGetGlobalParent
_LLVMIsDeclaration = LLVMIsDeclaration
_LLVMGetLinkage = LLVMGetLinkage
_LLVMSetLinkage = LLVMSetLinkage
_LLVMGetSection = LLVMGetSection
_LLVMSetSection = LLVMSetSection
_LLVMGetVisibility = LLVMGetVisibility
_LLVMSetVisibility = LLVMSetVisibility
_LLVMGetAlignment = LLVMGetAlignment
_LLVMSetAlignment = LLVMSetAlignment
;/* Operations on global variables */
_LLVMAddGlobal = LLVMAddGlobal
_LLVMGetNamedGlobal = LLVMGetNamedGlobal
_LLVMGetFirstGlobal = LLVMGetFirstGlobal
_LLVMGetLastGlobal = LLVMGetLastGlobal
_LLVMGetNextGlobal = LLVMGetNextGlobal
_LLVMGetPreviousGlobal = LLVMGetPreviousGlobal
_LLVMDeleteGlobal = LLVMDeleteGlobal
_LLVMHasInitializer = LLVMHasInitializer
_LLVMGetInitializer = LLVMGetInitializer
_LLVMSetInitializer = LLVMSetInitializer
_LLVMIsThreadLocal = LLVMIsThreadLocal
_LLVMSetThreadLocal = LLVMSetThreadLocal
_LLVMIsGlobalConstant = LLVMIsGlobalConstant
_LLVMSetGlobalConstant = LLVMSetGlobalConstant

;/* Operations on functions */
_LLVMAddFunction = LLVMAddFunction
_LLVMGetNamedFunction = LLVMGetNamedFunction
_LLVMGetFirstFunction = LLVMGetFirstFunction
_LLVMGetLastFunction = LLVMGetLastFunction
_LLVMGetNextFunction = LLVMGetNextFunction
_LLVMGetPreviousFunction = LLVMGetPreviousFunction
_LLVMDeleteFunction = LLVMDeleteFunction
_LLVMGetIntrinsicID = LLVMGetIntrinsicID
_LLVMGetFunctionCallConv = LLVMGetFunctionCallConv
_LLVMSetFunctionCallConv = LLVMSetFunctionCallConv
_LLVMGetCollector = LLVMGetCollector
_LLVMSetCollector = LLVMSetCollector
;/* Operations on parameters */
_LLVMCountParams = LLVMCountParams
_LLVMGetParams = LLVMGetParams
_LLVMGetParam = LLVMGetParam
_LLVMGetParamParent = LLVMGetParamParent
_LLVMGetFirstParam = LLVMGetFirstParam
_LLVMGetLastParam = LLVMGetLastParam
_LLVMGetNextParam = LLVMGetNextParam
_LLVMGetPreviousParam = LLVMGetPreviousParam
_LLVMAddParamAttr = LLVMAddParamAttr
_LLVMRemoveParamAttr = LLVMRemoveParamAttr
_LLVMSetParamAlignment = LLVMSetParamAlignment

;/* Operations on basic blocks */
_LLVMBasicBlockAsValue = LLVMBasicBlockAsValue
_LLVMValueIsBasicBlock = LLVMValueIsBasicBlock
_LLVMValueAsBasicBlock = LLVMValueAsBasicBlock
_LLVMGetBasicBlockParent = LLVMGetBasicBlockParent
_LLVMCountBasicBlocks = LLVMCountBasicBlocks
_LLVMGetBasicBlocks = LLVMGetBasicBlocks
_LLVMGetFirstBasicBlock = LLVMGetFirstBasicBlock
_LLVMGetLastBasicBlock = LLVMGetLastBasicBlock
_LLVMGetNextBasicBlock = LLVMGetNextBasicBlock
_LLVMGetPreviousBasicBlock = LLVMGetPreviousBasicBlock
_LLVMGetEntryBasicBlock = LLVMGetEntryBasicBlock
_LLVMAppendBasicBlock = LLVMAppendBasicBlock
_LLVMInsertBasicBlock = LLVMInsertBasicBlock
_LLVMDeleteBasicBlock = LLVMDeleteBasicBlock
;/* Operations on instructions */
_LLVMGetInstructionParent = LLVMGetInstructionParent
_LLVMGetFirstInstruction = LLVMGetFirstInstruction
_LLVMGetLastInstruction = LLVMGetLastInstruction
_LLVMGetNextInstruction = LLVMGetNextInstruction
_LLVMGetPreviousInstruction = LLVMGetPreviousInstruction

;/* Operations on call sites */
_LLVMSetInstructionCallConv = LLVMSetInstructionCallConv
_LLVMGetInstructionCallConv = LLVMGetInstructionCallConv
_LLVMAddInstrParamAttr = LLVMAddInstrParamAttr
_LLVMRemoveInstrParamAttr = LLVMRemoveInstrParamAttr
_LLVMSetInstrParamAlignment = LLVMSetInstrParamAlignment
;/* Operations on phi nodes */
_LLVMAddIncoming = LLVMAddIncoming
_LLVMCountIncoming = LLVMCountIncoming
_LLVMGetIncomingValue = LLVMGetIncomingValue
_LLVMGetIncomingBlock = LLVMGetIncomingBlock
;/*===-- Instruction builders ----------------------------------------------===*/
;/* An instruction builder represents a point within a basic block, and is the
; * exclusive means of building instructions using the C interface.
; */
_LLVMCreateBuilder = LLVMCreateBuilder
_LLVMPositionBuilder = LLVMPositionBuilder
_LLVMPositionBuilderBefore = LLVMPositionBuilderBefore
_LLVMPositionBuilderAtEnd = LLVMPositionBuilderAtEnd
_LLVMGetInsertBlock = LLVMGetInsertBlock
_LLVMDisposeBuilder = LLVMDisposeBuilder
;/* Terminators */
_LLVMBuildRetVoid = LLVMBuildRetVoid
_LLVMBuildRet = LLVMBuildRet
_LLVMBuildBr = LLVMBuildBr
_LLVMBuildCondBr = LLVMBuildCondBr
_LLVMBuildSwitch = LLVMBuildSwitch
_LLVMBuildInvoke = LLVMBuildInvoke
_LLVMBuildUnwind = LLVMBuildUnwind
_LLVMBuildUnreachable = LLVMBuildUnreachable
;/* Add a case to the switch instruction */
_LLVMAddCase = LLVMAddCase
;/* Arithmetic */
_LLVMBuildAdd = LLVMBuildAdd
_LLVMBuildSub = LLVMBuildSub
_LLVMBuildMul = LLVMBuildMul
_LLVMBuildUDiv = LLVMBuildUDiv
_LLVMBuildSDiv = LLVMBuildSDiv
_LLVMBuildFDiv = LLVMBuildFDiv
_LLVMBuildURem = LLVMBuildURem
_LLVMBuildSRem = LLVMBuildSRem
_LLVMBuildFRem = LLVMBuildFRem
_LLVMBuildShl = LLVMBuildShl
_LLVMBuildLShr = LLVMBuildLShr
_LLVMBuildAShr = LLVMBuildAShr
_LLVMBuildAnd = LLVMBuildAnd
_LLVMBuildOr = LLVMBuildOr
_LLVMBuildXor = LLVMBuildXor
_LLVMBuildNeg = LLVMBuildNeg
_LLVMBuildNot = LLVMBuildNot
;/* Memory */
_LLVMBuildMalloc = LLVMBuildMalloc
_LLVMBuildArrayMalloc = LLVMBuildArrayMalloc
_LLVMBuildAlloca = LLVMBuildAlloca
_LLVMBuildArrayAlloca = LLVMBuildArrayAlloca
_LLVMBuildFree = LLVMBuildFree
_LLVMBuildLoad = LLVMBuildLoad
_LLVMBuildStore = LLVMBuildStore
_LLVMBuildGEP = LLVMBuildGEP
;/* Casts */
_LLVMBuildTrunc = LLVMBuildTrunc
_LLVMBuildZExt = LLVMBuildZExt
_LLVMBuildSExt = LLVMBuildSExt
_LLVMBuildFPToUI = LLVMBuildFPToUI
_LLVMBuildFPToSI = LLVMBuildFPToSI
_LLVMBuildUIToFP = LLVMBuildUIToFP
_LLVMBuildSIToFP = LLVMBuildSIToFP
_LLVMBuildFPTrunc = LLVMBuildFPTrunc
_LLVMBuildFPExt = LLVMBuildFPExt
_LLVMBuildPtrToInt = LLVMBuildPtrToInt
_LLVMBuildIntToPtr = LLVMBuildIntToPtr
_LLVMBuildBitCast = LLVMBuildBitCast
;/* Comparisons */
_LLVMBuildICmp = LLVMBuildICmp
_LLVMBuildFCmp = LLVMBuildFCmp
;/* Miscellaneous instructions */
_LLVMBuildPhi = LLVMBuildPhi
_LLVMBuildCall = LLVMBuildCall
_LLVMBuildSelect = LLVMBuildSelect
_LLVMBuildVAArg = LLVMBuildVAArg
_LLVMBuildExtractElement = LLVMBuildExtractElement
_LLVMBuildInsertElement = LLVMBuildInsertElement
_LLVMBuildShuffleVector = LLVMBuildShuffleVector
;/*===-- Module providers --------------------------------------------------===*/
;/* Encapsulates the module M in a module provider, taking ownership of the
; * module.
; * See the constructor llvm::ExistingModuleProvider::ExistingModuleProvider.
; */
_LLVMCreateModuleProviderForExistingModule = LLVMCreateModuleProviderForExistingModule
;/* Destroys the module provider MP as well as the contained module.
; * See the destructor llvm::ModuleProvider::~ModuleProvider.
; */
_LLVMDisposeModuleProvider = LLVMDisposeModuleProvider
;/*===-- Memory buffers ----------------------------------------------------===*/
_LLVMCreateMemoryBufferWithContentsOfFile = LLVMCreateMemoryBufferWithContentsOfFile
_LLVMCreateMemoryBufferWithSTDIN = LLVMCreateMemoryBufferWithSTDIN
_LLVMDisposeMemoryBuffer = LLVMDisposeMemoryBuffer
;/*===-- Pass Managers -----------------------------------------------------===*/
;/** Constructs a new whole-module pass pipeline. This type of pipeline is
;    suitable for link-time optimization and whole-module transformations.
;    See llvm::PassManager::PassManager. */
_LLVMCreatePassManager = LLVMCreatePassManager
;/** Constructs a new function-by-function pass pipeline over the module
;    provider. It does not take ownership of the module provider. This type of
;    pipeline is suitable for code generation and JIT compilation tasks.
;    See llvm::FunctionPassManager::FunctionPassManager. */
_LLVMCreateFunctionPassManager = LLVMCreateFunctionPassManager
;/** Initializes, executes on the provided module, and finalizes all of the
;    passes scheduled in the pass manager. Returns 1 if any of the passes
;    modified the module, 0 otherwise. See llvm::PassManager::run(Module&). */
_LLVMRunPassManager = LLVMRunPassManager
;/** Initializes all of the function passes scheduled in the function pass
;    manager. Returns 1 if any of the passes modified the module, 0 otherwise.
;    See llvm::FunctionPassManager::doInitialization. */
_LLVMInitializeFunctionPassManager = LLVMInitializeFunctionPassManager
;/** Executes all of the function passes scheduled in the function pass manager
;    on the provided function. Returns 1 if any of the passes modified the
;    function, false otherwise.
;    See llvm::FunctionPassManager::run(Function&). */
_LLVMRunFunctionPassManager = LLVMRunFunctionPassManager
;/** Finalizes all of the function passes scheduled in in the function pass
;    manager. Returns 1 if any of the passes modified the module, 0 otherwise.
;    See llvm::FunctionPassManager::doFinalization. */
_LLVMFinalizeFunctionPassManager = LLVMFinalizeFunctionPassManager
;/** Frees the memory of a pass pipeline. For function pipelines, does not free
;    the module provider.
;    See llvm::PassManagerBase::~PassManagerBase. */
_LLVMDisposePassManager = LLVMDisposePassManager
;Analysis.h
_LLVMVerifyModule = LLVMVerifyModule
_LLVMVerifyFunction = LLVMVerifyFunction
_LLVMViewFunctionCFG = LLVMViewFunctionCFG
_LLVMViewFunctionCFGOnly = LLVMViewFunctionCFGOnly
;Target.h
_LLVMCreateTargetData = LLVMCreateTargetData
_LLVMAddTargetData = LLVMAddTargetData
_LLVMCopyStringRepOfTargetData = LLVMCopyStringRepOfTargetData
_LLVMByteOrder = LLVMByteOrder
_LLVMPointerSize = LLVMPointerSize
_LLVMIntPtrType = LLVMIntPtrType
_LLVMSizeOfTypeInBits = LLVMSizeOfTypeInBits
_LLVMStoreSizeOfType = LLVMStoreSizeOfType
_LLVMABISizeOfType = LLVMABISizeOfType
_LLVMABIAlignmentOfType = LLVMABIAlignmentOfType
_LLVMCallFrameAlignmentOfType = LLVMCallFrameAlignmentOfType
_LLVMPreferredAlignmentOfType = LLVMPreferredAlignmentOfType
_LLVMPreferredAlignmentOfGlobal = LLVMPreferredAlignmentOfGlobal
_LLVMElementAtOffset = LLVMElementAtOffset
_LLVMOffsetOfElement = LLVMOffsetOfElement
_LLVMInvalidateStructLayout = LLVMInvalidateStructLayout
_LLVMDisposeTargetData = LLVMDisposeTargetData
;possible C++ enhancement?
;llvm-ext.cpp
_LLVMEraseFromParent = LLVMEraseFromParent
_LLVMIsTerminated = LLVMIsTerminated
_LLVMHasPredecessors = LLVMHasPredecessors
_LLVMIsBasicBlockEmpty = LLVMIsBasicBlockEmpty
_LLVMReplaceAllUsesWith = LLVMReplaceAllUsesWith
_LLVMDumpType = LLVMDumpType
_LLVMGetOrInsertFunction = LLVMGetOrInsertFunction
_LLVMGetValueKind = LLVMGetValueKind
_LLVMValueToString = LLVMValueToString
_LLVMTypeToString = LLVMTypeToString
_LLVMGetTypeByName = LLVMGetTypeByName
_LLVMIsTypeAbstract = LLVMIsTypeAbstract
;llvm-opt.cpp
_LLVMOptimizeModule = LLVMOptimizeModule
;llvm-typemonitor.cpp
_LLVMRegisterAbstractTypeCallback = LLVMRegisterAbstractTypeCallback
;EOF

