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
;/* 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
;BitWriter.h
LLVMWriteBitcodeToFileHandle
LLVMWriteBitcodeToFile
;Core.h
;/*===-- Error handling ----------------------------------------------------===*/
LLVMDisposeMessage
;/** See llvm::Module::Module. */
LLVMModuleCreateWithName
;/** See llvm::Module::~Module. */
LLVMDisposeModule
;/** Data layout. See Module::getDataLayout. */
LLVMGetDataLayout
LLVMSetDataLayout
;/** Target triple. See Module::getTargetTriple. */
LLVMGetTarget
LLVMSetTarget
;/** See Module::addTypeName. */
LLVMAddTypeName
LLVMDeleteTypeName
;/** See Module::dump. */
LLVMDumpModule
;/** See llvm::LLVMTypeKind::getTypeID. */
LLVMGetTypeKind
;/* Operations on integer types */
LLVMInt1Type
LLVMInt8Type
LLVMInt16Type
LLVMInt32Type
LLVMInt64Type
LLVMIntType
LLVMGetIntTypeWidth
;/* Operations on real types */
LLVMFloatType
LLVMDoubleType
LLVMX86FP80Type
LLVMFP128Type
LLVMPPCFP128Type
;/* Operations on function types */
LLVMFunctionType
LLVMIsFunctionVarArg
LLVMGetReturnType
LLVMCountParamTypes
LLVMGetParamTypes
;/* Operations on struct types */
LLVMStructType
LLVMCountStructElementTypes
LLVMGetStructElementTypes
LLVMIsPackedStruct
;/* Operations on array, pointer, and vector types (sequence types) */
LLVMArrayType
LLVMPointerType
LLVMVectorType
LLVMGetElementType
LLVMGetArrayLength
LLVMGetPointerAddressSpace
LLVMGetVectorSize
;/* Operations on other types */
LLVMVoidType
LLVMLabelType
LLVMOpaqueType
;/* Operations on type handles */
LLVMCreateTypeHandle
LLVMRefineType
LLVMResolveTypeHandle
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
LLVMGetValueName
LLVMSetValueName
LLVMDumpValue
;/* Operations on constants of any type */
;/* all zeroes */
LLVMConstNull 
;/* only for int/vector */
LLVMConstAllOnes 
LLVMGetUndef
LLVMIsConstant
LLVMIsNull
LLVMIsUndef
;/* Operations on scalar constants */
LLVMConstInt
LLVMConstReal
LLVMConstRealOfString
;/* Operations on composite constants */
LLVMConstString
LLVMConstArray
LLVMConstStruct
LLVMConstVector
;/* Constant expressions */
LLVMSizeOf
LLVMConstNeg
LLVMConstNot
LLVMConstAdd
LLVMConstSub
LLVMConstMul
LLVMConstUDiv
LLVMConstSDiv
LLVMConstFDiv
LLVMConstURem
LLVMConstSRem
LLVMConstFRem
LLVMConstAnd
LLVMConstOr
LLVMConstXor
LLVMConstICmp
LLVMConstFCmp
LLVMConstShl
LLVMConstLShr
LLVMConstAShr
LLVMConstGEP
LLVMConstTrunc
LLVMConstSExt
LLVMConstZExt
LLVMConstFPTrunc
LLVMConstFPExt
LLVMConstUIToFP
LLVMConstSIToFP
LLVMConstFPToUI
LLVMConstFPToSI
LLVMConstPtrToInt
LLVMConstIntToPtr
LLVMConstBitCast
LLVMConstSelect
LLVMConstExtractElement
LLVMConstInsertElement
LLVMConstShuffleVector
;/* Operations on global variables, functions, and aliases (globals) */
LLVMGetGlobalParent
LLVMIsDeclaration
LLVMGetLinkage
LLVMSetLinkage
LLVMGetSection
LLVMSetSection
LLVMGetVisibility
LLVMSetVisibility
LLVMGetAlignment
LLVMSetAlignment
;/* Operations on global variables */
LLVMAddGlobal
LLVMGetNamedGlobal
LLVMGetFirstGlobal
LLVMGetLastGlobal
LLVMGetNextGlobal
LLVMGetPreviousGlobal
LLVMDeleteGlobal
LLVMHasInitializer
LLVMGetInitializer
LLVMSetInitializer
LLVMIsThreadLocal
LLVMSetThreadLocal
LLVMIsGlobalConstant
LLVMSetGlobalConstant

;/* Operations on functions */
LLVMAddFunction
LLVMGetNamedFunction
LLVMGetFirstFunction
LLVMGetLastFunction
LLVMGetNextFunction
LLVMGetPreviousFunction
LLVMDeleteFunction
LLVMGetIntrinsicID
LLVMGetFunctionCallConv
LLVMSetFunctionCallConv
LLVMGetCollector
LLVMSetCollector
;/* Operations on parameters */
LLVMCountParams
LLVMGetParams
LLVMGetParam
LLVMGetParamParent
LLVMGetFirstParam
LLVMGetLastParam
LLVMGetNextParam
LLVMGetPreviousParam
LLVMAddParamAttr
LLVMRemoveParamAttr
LLVMSetParamAlignment

;/* Operations on basic blocks */
LLVMBasicBlockAsValue
LLVMValueIsBasicBlock
LLVMValueAsBasicBlock
LLVMGetBasicBlockParent
LLVMCountBasicBlocks
LLVMGetBasicBlocks
LLVMGetFirstBasicBlock
LLVMGetLastBasicBlock
LLVMGetNextBasicBlock
LLVMGetPreviousBasicBlock
LLVMGetEntryBasicBlock
LLVMAppendBasicBlock
LLVMInsertBasicBlock
LLVMDeleteBasicBlock
;/* Operations on instructions */
LLVMGetInstructionParent
LLVMGetFirstInstruction
LLVMGetLastInstruction
LLVMGetNextInstruction
LLVMGetPreviousInstruction

;/* Operations on call sites */
LLVMSetInstructionCallConv
LLVMGetInstructionCallConv
LLVMAddInstrParamAttr
LLVMRemoveInstrParamAttr
LLVMSetInstrParamAlignment
;/* Operations on phi nodes */
LLVMAddIncoming
LLVMCountIncoming
LLVMGetIncomingValue
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
LLVMPositionBuilder
LLVMPositionBuilderBefore
LLVMPositionBuilderAtEnd
LLVMGetInsertBlock
LLVMDisposeBuilder
;/* Terminators */
LLVMBuildRetVoid
LLVMBuildRet
LLVMBuildBr
LLVMBuildCondBr
LLVMBuildSwitch
LLVMBuildInvoke
LLVMBuildUnwind
LLVMBuildUnreachable
;/* Add a case to the switch instruction */
LLVMAddCase
;/* Arithmetic */
LLVMBuildAdd
LLVMBuildSub
LLVMBuildMul
LLVMBuildUDiv
LLVMBuildSDiv
LLVMBuildFDiv
LLVMBuildURem
LLVMBuildSRem
LLVMBuildFRem
LLVMBuildShl
LLVMBuildLShr
LLVMBuildAShr
LLVMBuildAnd
LLVMBuildOr
LLVMBuildXor
LLVMBuildNeg
LLVMBuildNot
;/* Memory */
LLVMBuildMalloc
LLVMBuildArrayMalloc
LLVMBuildAlloca
LLVMBuildArrayAlloca
LLVMBuildFree
LLVMBuildLoad
LLVMBuildStore
LLVMBuildGEP
;/* Casts */
LLVMBuildTrunc
LLVMBuildZExt
LLVMBuildSExt
LLVMBuildFPToUI
LLVMBuildFPToSI
LLVMBuildUIToFP
LLVMBuildSIToFP
LLVMBuildFPTrunc
LLVMBuildFPExt
LLVMBuildPtrToInt
LLVMBuildIntToPtr
LLVMBuildBitCast
;/* Comparisons */
LLVMBuildICmp
LLVMBuildFCmp
;/* Miscellaneous instructions */
LLVMBuildPhi
LLVMBuildCall
LLVMBuildSelect
LLVMBuildVAArg
LLVMBuildExtractElement
LLVMBuildInsertElement
LLVMBuildShuffleVector
;/*===-- Module providers --------------------------------------------------===*/
;/* Encapsulates the module M in a module provider, taking ownership of the
; * module.
; * See the constructor llvm::ExistingModuleProvider::ExistingModuleProvider.
; */
LLVMCreateModuleProviderForExistingModule
;/* Destroys the module provider MP as well as the contained module.
; * See the destructor llvm::ModuleProvider::~ModuleProvider.
; */
LLVMDisposeModuleProvider
;/*===-- Memory buffers ----------------------------------------------------===*/
LLVMCreateMemoryBufferWithContentsOfFile
LLVMCreateMemoryBufferWithSTDIN
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
;/** 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
;/** 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
;/** 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
;/** 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
;/** 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
;/** Frees the memory of a pass pipeline. For function pipelines, does not free
;    the module provider.
;    See llvm::PassManagerBase::~PassManagerBase. */
LLVMDisposePassManager
;Analysis.h
LLVMVerifyModule
LLVMVerifyFunction
LLVMViewFunctionCFG
LLVMViewFunctionCFGOnly
;Target.h
LLVMCreateTargetData
LLVMAddTargetData
LLVMCopyStringRepOfTargetData
LLVMByteOrder
LLVMPointerSize
LLVMIntPtrType
LLVMSizeOfTypeInBits
LLVMStoreSizeOfType
LLVMABISizeOfType
LLVMABIAlignmentOfType
LLVMCallFrameAlignmentOfType
LLVMPreferredAlignmentOfType
LLVMPreferredAlignmentOfGlobal
LLVMElementAtOffset
LLVMOffsetOfElement
LLVMInvalidateStructLayout
LLVMDisposeTargetData
;possible C++ enhancement?
;llvm-ext.cpp
LLVMEraseFromParent
LLVMIsTerminated
LLVMHasPredecessors
LLVMIsBasicBlockEmpty
LLVMReplaceAllUsesWith
LLVMDumpType
LLVMGetOrInsertFunction
LLVMGetValueKind
LLVMValueToString
LLVMTypeToString
LLVMGetTypeByName
LLVMIsTypeAbstract
;llvm-opt.cpp
LLVMOptimizeModule
;llvm-typemonitor.cpp
LLVMRegisterAbstractTypeCallback
;EOF
