Hi,

On Thursday, April 25, 2013 10:29:27 Jose Fonseca wrote:
> - There are a bunch of options that need to be set via globals, (see
> lp_set_target_options), so app/drivers could tamper with each other
> options.
>
> - llvm::cl::ParseCommandLineOptions will complain if called multiple times
> -- I think we no longer need to call it these days though
>
> In short, LLVM was not designed for multiple users in the same process.
Yep.

Also llvm is still emerging too fast to assume a specific version to be 
available. At least with r600 we do currently need a somewhat recent version 
and kind of have this assumption.
But due to the api not kept strictly backwards compatible and all the pitfalls 
that happen while emerging fast its very likely that a potential application 
that also tries to make use of the driver modules just brings its own probably 
incompatible llvm version in some way. So shielding this in any way makes 
sense ...


For the Mesa wrappers:
I have attached a shell script again as a rapid proof that is able to build a 
linker script that builds up a wrapper shared library that contains a private 
llvm copy. That's again non optimal - it contains just all static libs that I 
have in my current test environment... It's just to sketch how this could 
work.

The MesaLLVM-with-prefix.link script can by used with the command

g++ -shared -o libMesaLLVM.so MesaLLVM-with-prefix.link

to produce a libMesaLLVM.so that contains all C symbols starting with LLVM 
from libLLVMCore.a. All of them get prefixed with Mesa and are the only 
exported symbols then.
That's close to Joses suggestion but with less work to be done in sources.

The MesaLLVM-with-version.link script can by used with the command

g++ -shared -o libMesaLLVM.so MesaLLVM-with-version.link

to produce a libMesaLLVM.so shared library that uses symbol versioning to 
distinguish between the llvm versions. I got this idea yesterday and this 
might simplify the problem a lot.
By this variant we do not even need to prefix all the callers by Mesa. What 
this does is to explicitly assign a symbol version to all these calls. At 
static link symbol resolve time with this libMesaLLVM.so, this symbol version  
(the 'A MesaLLVM_1.0' entry) is then pulled out of this shared object and all 
users, in libllvmradeon.so for example, are linked against 
LLVMCreateContext@MesaLLVM_1,0 instead of just LLVMCreateContext. So we should 
get a private copy of llvm in libMesaLLVM.so with just the same call names 
than usual source code wise.
That's to be tested and verified, but if this works like I think it should, 
this is the easiest way to get our own LLVM version on linux at least.

And sorry for just doing these crude proof of concept stuff ...

Greetings

Mathias

Attachment: mklinkerscript.sh
Description: application/shellscript

/* Mesa llvm linker script */
EXTERN(
LLVMAddAlias
LLVMAddAttribute
LLVMAddCase
LLVMAddClause
LLVMAddDestination
LLVMAddFunction
LLVMAddFunctionAttr
LLVMAddGlobal
LLVMAddGlobalInAddressSpace
LLVMAddIncoming
LLVMAddInstrAttribute
LLVMAddNamedMetadataOperand
LLVMAddTargetDependentFunctionAttr
LLVMAlignOf
LLVMAppendBasicBlock
LLVMAppendBasicBlockInContext
LLVMArrayType
LLVMBasicBlockAsValue
LLVMBlockAddress
LLVMBuildAdd
LLVMBuildAggregateRet
LLVMBuildAlloca
LLVMBuildAnd
LLVMBuildArrayAlloca
LLVMBuildArrayMalloc
LLVMBuildAShr
LLVMBuildAtomicRMW
LLVMBuildBinOp
LLVMBuildBitCast
LLVMBuildBr
LLVMBuildCall
LLVMBuildCast
LLVMBuildCondBr
LLVMBuildExactSDiv
LLVMBuildExtractElement
LLVMBuildExtractValue
LLVMBuildFAdd
LLVMBuildFCmp
LLVMBuildFDiv
LLVMBuildFMul
LLVMBuildFNeg
LLVMBuildFPCast
LLVMBuildFPExt
LLVMBuildFPToSI
LLVMBuildFPToUI
LLVMBuildFPTrunc
LLVMBuildFree
LLVMBuildFRem
LLVMBuildFSub
LLVMBuildGEP
LLVMBuildGlobalString
LLVMBuildGlobalStringPtr
LLVMBuildICmp
LLVMBuildInBoundsGEP
LLVMBuildIndirectBr
LLVMBuildInsertElement
LLVMBuildInsertValue
LLVMBuildIntCast
LLVMBuildIntToPtr
LLVMBuildInvoke
LLVMBuildIsNotNull
LLVMBuildIsNull
LLVMBuildLandingPad
LLVMBuildLoad
LLVMBuildLShr
LLVMBuildMalloc
LLVMBuildMul
LLVMBuildNeg
LLVMBuildNot
LLVMBuildNSWAdd
LLVMBuildNSWMul
LLVMBuildNSWNeg
LLVMBuildNSWSub
LLVMBuildNUWAdd
LLVMBuildNUWMul
LLVMBuildNUWNeg
LLVMBuildNUWSub
LLVMBuildOr
LLVMBuildPhi
LLVMBuildPointerCast
LLVMBuildPtrDiff
LLVMBuildPtrToInt
LLVMBuildResume
LLVMBuildRet
LLVMBuildRetVoid
LLVMBuildSDiv
LLVMBuildSelect
LLVMBuildSExt
LLVMBuildSExtOrBitCast
LLVMBuildShl
LLVMBuildShuffleVector
LLVMBuildSIToFP
LLVMBuildSRem
LLVMBuildStore
LLVMBuildStructGEP
LLVMBuildSub
LLVMBuildSwitch
LLVMBuildTrunc
LLVMBuildTruncOrBitCast
LLVMBuildUDiv
LLVMBuildUIToFP
LLVMBuildUnreachable
LLVMBuildURem
LLVMBuildVAArg
LLVMBuildXor
LLVMBuildZExt
LLVMBuildZExtOrBitCast
LLVMClearInsertionPosition
LLVMConstAdd
LLVMConstAllOnes
LLVMConstAnd
LLVMConstArray
LLVMConstAShr
LLVMConstBitCast
LLVMConstExactSDiv
LLVMConstExtractElement
LLVMConstExtractValue
LLVMConstFAdd
LLVMConstFCmp
LLVMConstFDiv
LLVMConstFMul
LLVMConstFNeg
LLVMConstFPCast
LLVMConstFPExt
LLVMConstFPToSI
LLVMConstFPToUI
LLVMConstFPTrunc
LLVMConstFRem
LLVMConstFSub
LLVMConstGEP
LLVMConstICmp
LLVMConstInBoundsGEP
LLVMConstInlineAsm
LLVMConstInsertElement
LLVMConstInsertValue
LLVMConstInt
LLVMConstIntCast
LLVMConstIntGetSExtValue
LLVMConstIntGetZExtValue
LLVMConstIntOfArbitraryPrecision
LLVMConstIntOfString
LLVMConstIntOfStringAndSize
LLVMConstIntToPtr
LLVMConstLShr
LLVMConstMul
LLVMConstNamedStruct
LLVMConstNeg
LLVMConstNot
LLVMConstNSWAdd
LLVMConstNSWMul
LLVMConstNSWNeg
LLVMConstNSWSub
LLVMConstNull
LLVMConstNUWAdd
LLVMConstNUWMul
LLVMConstNUWNeg
LLVMConstNUWSub
LLVMConstOr
LLVMConstPointerCast
LLVMConstPointerNull
LLVMConstPtrToInt
LLVMConstReal
LLVMConstRealOfString
LLVMConstRealOfStringAndSize
LLVMConstSDiv
LLVMConstSelect
LLVMConstSExt
LLVMConstSExtOrBitCast
LLVMConstShl
LLVMConstShuffleVector
LLVMConstSIToFP
LLVMConstSRem
LLVMConstString
LLVMConstStringInContext
LLVMConstStruct
LLVMConstStructInContext
LLVMConstSub
LLVMConstTrunc
LLVMConstTruncOrBitCast
LLVMConstUDiv
LLVMConstUIToFP
LLVMConstURem
LLVMConstVector
LLVMConstXor
LLVMConstZExt
LLVMConstZExtOrBitCast
LLVMContextCreate
LLVMContextDispose
LLVMCountBasicBlocks
LLVMCountIncoming
LLVMCountParams
LLVMCountParamTypes
LLVMCountStructElementTypes
LLVMCreateBuilder
LLVMCreateBuilderInContext
LLVMCreateFunctionPassManager
LLVMCreateFunctionPassManagerForModule
LLVMCreateMemoryBufferWithContentsOfFile
LLVMCreateMemoryBufferWithMemoryRange
LLVMCreateMemoryBufferWithMemoryRangeCopy
LLVMCreateMemoryBufferWithSTDIN
LLVMCreateModuleProviderForExistingModule
LLVMCreatePassManager
LLVMDeleteBasicBlock
LLVMDeleteFunction
LLVMDeleteGlobal
LLVMDisposeBuilder
LLVMDisposeMemoryBuffer
LLVMDisposeMessage
LLVMDisposeModule
LLVMDisposeModuleProvider
LLVMDisposePassManager
LLVMDoubleType
LLVMDoubleTypeInContext
LLVMDumpModule
LLVMDumpValue
LLVMFinalizeFunctionPassManager
LLVMFloatType
LLVMFloatTypeInContext
LLVMFP128Type
LLVMFP128TypeInContext
LLVMFunctionType
LLVMGetAlignment
LLVMGetArrayLength
LLVMGetAttribute
LLVMGetBasicBlockParent
LLVMGetBasicBlocks
LLVMGetBasicBlockTerminator
LLVMGetBufferSize
LLVMGetBufferStart
LLVMGetConstOpcode
LLVMGetCurrentDebugLocation
LLVMGetDataLayout
LLVMGetElementType
LLVMGetEntryBasicBlock
LLVMGetFirstBasicBlock
LLVMGetFirstFunction
LLVMGetFirstGlobal
LLVMGetFirstInstruction
LLVMGetFirstParam
LLVMGetFirstUse
LLVMGetFunctionAttr
LLVMGetFunctionCallConv
LLVMGetGC
LLVMGetGlobalContext
LLVMGetGlobalParent
LLVMGetGlobalPassRegistry
LLVMGetICmpPredicate
LLVMGetIncomingBlock
LLVMGetIncomingValue
LLVMGetInitializer
LLVMGetInsertBlock
LLVMGetInstructionCallConv
LLVMGetInstructionOpcode
LLVMGetInstructionParent
LLVMGetIntrinsicID
LLVMGetIntTypeWidth
LLVMGetLastBasicBlock
LLVMGetLastFunction
LLVMGetLastGlobal
LLVMGetLastInstruction
LLVMGetLastParam
LLVMGetLinkage
LLVMGetMDKindID
LLVMGetMDKindIDInContext
LLVMGetMDNodeNumOperands
LLVMGetMDNodeOperands
LLVMGetMDString
LLVMGetMetadata
LLVMGetModuleContext
LLVMGetNamedFunction
LLVMGetNamedGlobal
LLVMGetNamedMetadataNumOperands
LLVMGetNamedMetadataOperands
LLVMGetNextBasicBlock
LLVMGetNextFunction
LLVMGetNextGlobal
LLVMGetNextInstruction
LLVMGetNextParam
LLVMGetNextUse
LLVMGetNumOperands
LLVMGetOperand
LLVMGetParam
LLVMGetParamParent
LLVMGetParams
LLVMGetParamTypes
LLVMGetPointerAddressSpace
LLVMGetPreviousBasicBlock
LLVMGetPreviousFunction
LLVMGetPreviousGlobal
LLVMGetPreviousInstruction
LLVMGetPreviousParam
LLVMGetReturnType
LLVMGetSection
LLVMGetStructElementTypes
LLVMGetStructName
LLVMGetSwitchDefaultDest
LLVMGetTarget
LLVMGetThreadLocalMode
LLVMGetTypeByName
LLVMGetTypeContext
LLVMGetTypeKind
LLVMGetUndef
LLVMGetUsedValue
LLVMGetUser
LLVMGetValueName
LLVMGetVectorSize
LLVMGetVisibility
LLVMGetVolatile
LLVMHalfType
LLVMHalfTypeInContext
LLVMHasMetadata
LLVMInitializeCore
LLVMInitializeFunctionPassManager
LLVMInsertBasicBlock
LLVMInsertBasicBlockInContext
LLVMInsertIntoBuilder
LLVMInsertIntoBuilderWithName
LLVMInstructionEraseFromParent
LLVMInt16Type
LLVMInt16TypeInContext
LLVMInt1Type
LLVMInt1TypeInContext
LLVMInt32Type
LLVMInt32TypeInContext
LLVMInt64Type
LLVMInt64TypeInContext
LLVMInt8Type
LLVMInt8TypeInContext
LLVMIntType
LLVMIntTypeInContext
LLVMIsAAllocaInst
LLVMIsAArgument
LLVMIsABasicBlock
LLVMIsABinaryOperator
LLVMIsABitCastInst
LLVMIsABlockAddress
LLVMIsABranchInst
LLVMIsACallInst
LLVMIsACastInst
LLVMIsACmpInst
LLVMIsAConstant
LLVMIsAConstantAggregateZero
LLVMIsAConstantArray
LLVMIsAConstantExpr
LLVMIsAConstantFP
LLVMIsAConstantInt
LLVMIsAConstantPointerNull
LLVMIsAConstantStruct
LLVMIsAConstantVector
LLVMIsADbgDeclareInst
LLVMIsADbgInfoIntrinsic
LLVMIsAExtractElementInst
LLVMIsAExtractValueInst
LLVMIsAFCmpInst
LLVMIsAFPExtInst
LLVMIsAFPToSIInst
LLVMIsAFPToUIInst
LLVMIsAFPTruncInst
LLVMIsAFunction
LLVMIsAGetElementPtrInst
LLVMIsAGlobalAlias
LLVMIsAGlobalValue
LLVMIsAGlobalVariable
LLVMIsAICmpInst
LLVMIsAIndirectBrInst
LLVMIsAInlineAsm
LLVMIsAInsertElementInst
LLVMIsAInsertValueInst
LLVMIsAInstruction
LLVMIsAIntrinsicInst
LLVMIsAIntToPtrInst
LLVMIsAInvokeInst
LLVMIsALandingPadInst
LLVMIsALoadInst
LLVMIsAMDNode
LLVMIsAMDString
LLVMIsAMemCpyInst
LLVMIsAMemIntrinsic
LLVMIsAMemMoveInst
LLVMIsAMemSetInst
LLVMIsAPHINode
LLVMIsAPtrToIntInst
LLVMIsAResumeInst
LLVMIsAReturnInst
LLVMIsASelectInst
LLVMIsASExtInst
LLVMIsAShuffleVectorInst
LLVMIsASIToFPInst
LLVMIsAStoreInst
LLVMIsASwitchInst
LLVMIsATerminatorInst
LLVMIsATruncInst
LLVMIsAUIToFPInst
LLVMIsAUnaryInstruction
LLVMIsAUndefValue
LLVMIsAUnreachableInst
LLVMIsAUser
LLVMIsAVAArgInst
LLVMIsAZExtInst
LLVMIsConstant
LLVMIsDeclaration
LLVMIsExternallyInitialized
LLVMIsFunctionVarArg
LLVMIsGlobalConstant
LLVMIsMultithreaded
LLVMIsNull
LLVMIsOpaqueStruct
LLVMIsPackedStruct
LLVMIsTailCall
LLVMIsThreadLocal
LLVMIsUndef
LLVMLabelType
LLVMLabelTypeInContext
LLVMMDNode
LLVMMDNodeInContext
LLVMMDString
LLVMMDStringInContext
LLVMModuleCreateWithName
LLVMModuleCreateWithNameInContext
LLVMMoveBasicBlockAfter
LLVMMoveBasicBlockBefore
LLVMPointerType
LLVMPositionBuilder
LLVMPositionBuilderAtEnd
LLVMPositionBuilderBefore
LLVMPPCFP128Type
LLVMPPCFP128TypeInContext
LLVMPrintModuleToFile
LLVMRemoveAttribute
LLVMRemoveBasicBlockFromParent
LLVMRemoveFunctionAttr
LLVMRemoveInstrAttribute
LLVMReplaceAllUsesWith
LLVMRunFunctionPassManager
LLVMRunPassManager
LLVMSetAlignment
LLVMSetCleanup
LLVMSetCurrentDebugLocation
LLVMSetDataLayout
LLVMSetExternallyInitialized
LLVMSetFunctionCallConv
LLVMSetGC
LLVMSetGlobalConstant
LLVMSetInitializer
LLVMSetInstDebugLocation
LLVMSetInstrParamAlignment
LLVMSetInstructionCallConv
LLVMSetLinkage
LLVMSetMetadata
LLVMSetModuleInlineAsm
LLVMSetOperand
LLVMSetParamAlignment
LLVMSetSection
LLVMSetTailCall
LLVMSetTarget
LLVMSetThreadLocal
LLVMSetThreadLocalMode
LLVMSetValueName
LLVMSetVisibility
LLVMSetVolatile
LLVMShutdown
LLVMSizeOf
LLVMStartMultithreaded
LLVMStopMultithreaded
LLVMStructCreateNamed
LLVMStructSetBody
LLVMStructType
LLVMStructTypeInContext
LLVMTypeIsSized
LLVMTypeOf
LLVMValueAsBasicBlock
LLVMValueIsBasicBlock
LLVMVectorType
LLVMVoidType
LLVMVoidTypeInContext
LLVMX86FP80Type
LLVMX86FP80TypeInContext
LLVMX86MMXType
LLVMX86MMXTypeInContext
)
MesaLLVMAddAlias = LLVMAddAlias;
MesaLLVMAddAttribute = LLVMAddAttribute;
MesaLLVMAddCase = LLVMAddCase;
MesaLLVMAddClause = LLVMAddClause;
MesaLLVMAddDestination = LLVMAddDestination;
MesaLLVMAddFunction = LLVMAddFunction;
MesaLLVMAddFunctionAttr = LLVMAddFunctionAttr;
MesaLLVMAddGlobal = LLVMAddGlobal;
MesaLLVMAddGlobalInAddressSpace = LLVMAddGlobalInAddressSpace;
MesaLLVMAddIncoming = LLVMAddIncoming;
MesaLLVMAddInstrAttribute = LLVMAddInstrAttribute;
MesaLLVMAddNamedMetadataOperand = LLVMAddNamedMetadataOperand;
MesaLLVMAddTargetDependentFunctionAttr = LLVMAddTargetDependentFunctionAttr;
MesaLLVMAlignOf = LLVMAlignOf;
MesaLLVMAppendBasicBlock = LLVMAppendBasicBlock;
MesaLLVMAppendBasicBlockInContext = LLVMAppendBasicBlockInContext;
MesaLLVMArrayType = LLVMArrayType;
MesaLLVMBasicBlockAsValue = LLVMBasicBlockAsValue;
MesaLLVMBlockAddress = LLVMBlockAddress;
MesaLLVMBuildAdd = LLVMBuildAdd;
MesaLLVMBuildAggregateRet = LLVMBuildAggregateRet;
MesaLLVMBuildAlloca = LLVMBuildAlloca;
MesaLLVMBuildAnd = LLVMBuildAnd;
MesaLLVMBuildArrayAlloca = LLVMBuildArrayAlloca;
MesaLLVMBuildArrayMalloc = LLVMBuildArrayMalloc;
MesaLLVMBuildAShr = LLVMBuildAShr;
MesaLLVMBuildAtomicRMW = LLVMBuildAtomicRMW;
MesaLLVMBuildBinOp = LLVMBuildBinOp;
MesaLLVMBuildBitCast = LLVMBuildBitCast;
MesaLLVMBuildBr = LLVMBuildBr;
MesaLLVMBuildCall = LLVMBuildCall;
MesaLLVMBuildCast = LLVMBuildCast;
MesaLLVMBuildCondBr = LLVMBuildCondBr;
MesaLLVMBuildExactSDiv = LLVMBuildExactSDiv;
MesaLLVMBuildExtractElement = LLVMBuildExtractElement;
MesaLLVMBuildExtractValue = LLVMBuildExtractValue;
MesaLLVMBuildFAdd = LLVMBuildFAdd;
MesaLLVMBuildFCmp = LLVMBuildFCmp;
MesaLLVMBuildFDiv = LLVMBuildFDiv;
MesaLLVMBuildFMul = LLVMBuildFMul;
MesaLLVMBuildFNeg = LLVMBuildFNeg;
MesaLLVMBuildFPCast = LLVMBuildFPCast;
MesaLLVMBuildFPExt = LLVMBuildFPExt;
MesaLLVMBuildFPToSI = LLVMBuildFPToSI;
MesaLLVMBuildFPToUI = LLVMBuildFPToUI;
MesaLLVMBuildFPTrunc = LLVMBuildFPTrunc;
MesaLLVMBuildFree = LLVMBuildFree;
MesaLLVMBuildFRem = LLVMBuildFRem;
MesaLLVMBuildFSub = LLVMBuildFSub;
MesaLLVMBuildGEP = LLVMBuildGEP;
MesaLLVMBuildGlobalString = LLVMBuildGlobalString;
MesaLLVMBuildGlobalStringPtr = LLVMBuildGlobalStringPtr;
MesaLLVMBuildICmp = LLVMBuildICmp;
MesaLLVMBuildInBoundsGEP = LLVMBuildInBoundsGEP;
MesaLLVMBuildIndirectBr = LLVMBuildIndirectBr;
MesaLLVMBuildInsertElement = LLVMBuildInsertElement;
MesaLLVMBuildInsertValue = LLVMBuildInsertValue;
MesaLLVMBuildIntCast = LLVMBuildIntCast;
MesaLLVMBuildIntToPtr = LLVMBuildIntToPtr;
MesaLLVMBuildInvoke = LLVMBuildInvoke;
MesaLLVMBuildIsNotNull = LLVMBuildIsNotNull;
MesaLLVMBuildIsNull = LLVMBuildIsNull;
MesaLLVMBuildLandingPad = LLVMBuildLandingPad;
MesaLLVMBuildLoad = LLVMBuildLoad;
MesaLLVMBuildLShr = LLVMBuildLShr;
MesaLLVMBuildMalloc = LLVMBuildMalloc;
MesaLLVMBuildMul = LLVMBuildMul;
MesaLLVMBuildNeg = LLVMBuildNeg;
MesaLLVMBuildNot = LLVMBuildNot;
MesaLLVMBuildNSWAdd = LLVMBuildNSWAdd;
MesaLLVMBuildNSWMul = LLVMBuildNSWMul;
MesaLLVMBuildNSWNeg = LLVMBuildNSWNeg;
MesaLLVMBuildNSWSub = LLVMBuildNSWSub;
MesaLLVMBuildNUWAdd = LLVMBuildNUWAdd;
MesaLLVMBuildNUWMul = LLVMBuildNUWMul;
MesaLLVMBuildNUWNeg = LLVMBuildNUWNeg;
MesaLLVMBuildNUWSub = LLVMBuildNUWSub;
MesaLLVMBuildOr = LLVMBuildOr;
MesaLLVMBuildPhi = LLVMBuildPhi;
MesaLLVMBuildPointerCast = LLVMBuildPointerCast;
MesaLLVMBuildPtrDiff = LLVMBuildPtrDiff;
MesaLLVMBuildPtrToInt = LLVMBuildPtrToInt;
MesaLLVMBuildResume = LLVMBuildResume;
MesaLLVMBuildRet = LLVMBuildRet;
MesaLLVMBuildRetVoid = LLVMBuildRetVoid;
MesaLLVMBuildSDiv = LLVMBuildSDiv;
MesaLLVMBuildSelect = LLVMBuildSelect;
MesaLLVMBuildSExt = LLVMBuildSExt;
MesaLLVMBuildSExtOrBitCast = LLVMBuildSExtOrBitCast;
MesaLLVMBuildShl = LLVMBuildShl;
MesaLLVMBuildShuffleVector = LLVMBuildShuffleVector;
MesaLLVMBuildSIToFP = LLVMBuildSIToFP;
MesaLLVMBuildSRem = LLVMBuildSRem;
MesaLLVMBuildStore = LLVMBuildStore;
MesaLLVMBuildStructGEP = LLVMBuildStructGEP;
MesaLLVMBuildSub = LLVMBuildSub;
MesaLLVMBuildSwitch = LLVMBuildSwitch;
MesaLLVMBuildTrunc = LLVMBuildTrunc;
MesaLLVMBuildTruncOrBitCast = LLVMBuildTruncOrBitCast;
MesaLLVMBuildUDiv = LLVMBuildUDiv;
MesaLLVMBuildUIToFP = LLVMBuildUIToFP;
MesaLLVMBuildUnreachable = LLVMBuildUnreachable;
MesaLLVMBuildURem = LLVMBuildURem;
MesaLLVMBuildVAArg = LLVMBuildVAArg;
MesaLLVMBuildXor = LLVMBuildXor;
MesaLLVMBuildZExt = LLVMBuildZExt;
MesaLLVMBuildZExtOrBitCast = LLVMBuildZExtOrBitCast;
MesaLLVMClearInsertionPosition = LLVMClearInsertionPosition;
MesaLLVMConstAdd = LLVMConstAdd;
MesaLLVMConstAllOnes = LLVMConstAllOnes;
MesaLLVMConstAnd = LLVMConstAnd;
MesaLLVMConstArray = LLVMConstArray;
MesaLLVMConstAShr = LLVMConstAShr;
MesaLLVMConstBitCast = LLVMConstBitCast;
MesaLLVMConstExactSDiv = LLVMConstExactSDiv;
MesaLLVMConstExtractElement = LLVMConstExtractElement;
MesaLLVMConstExtractValue = LLVMConstExtractValue;
MesaLLVMConstFAdd = LLVMConstFAdd;
MesaLLVMConstFCmp = LLVMConstFCmp;
MesaLLVMConstFDiv = LLVMConstFDiv;
MesaLLVMConstFMul = LLVMConstFMul;
MesaLLVMConstFNeg = LLVMConstFNeg;
MesaLLVMConstFPCast = LLVMConstFPCast;
MesaLLVMConstFPExt = LLVMConstFPExt;
MesaLLVMConstFPToSI = LLVMConstFPToSI;
MesaLLVMConstFPToUI = LLVMConstFPToUI;
MesaLLVMConstFPTrunc = LLVMConstFPTrunc;
MesaLLVMConstFRem = LLVMConstFRem;
MesaLLVMConstFSub = LLVMConstFSub;
MesaLLVMConstGEP = LLVMConstGEP;
MesaLLVMConstICmp = LLVMConstICmp;
MesaLLVMConstInBoundsGEP = LLVMConstInBoundsGEP;
MesaLLVMConstInlineAsm = LLVMConstInlineAsm;
MesaLLVMConstInsertElement = LLVMConstInsertElement;
MesaLLVMConstInsertValue = LLVMConstInsertValue;
MesaLLVMConstInt = LLVMConstInt;
MesaLLVMConstIntCast = LLVMConstIntCast;
MesaLLVMConstIntGetSExtValue = LLVMConstIntGetSExtValue;
MesaLLVMConstIntGetZExtValue = LLVMConstIntGetZExtValue;
MesaLLVMConstIntOfArbitraryPrecision = LLVMConstIntOfArbitraryPrecision;
MesaLLVMConstIntOfString = LLVMConstIntOfString;
MesaLLVMConstIntOfStringAndSize = LLVMConstIntOfStringAndSize;
MesaLLVMConstIntToPtr = LLVMConstIntToPtr;
MesaLLVMConstLShr = LLVMConstLShr;
MesaLLVMConstMul = LLVMConstMul;
MesaLLVMConstNamedStruct = LLVMConstNamedStruct;
MesaLLVMConstNeg = LLVMConstNeg;
MesaLLVMConstNot = LLVMConstNot;
MesaLLVMConstNSWAdd = LLVMConstNSWAdd;
MesaLLVMConstNSWMul = LLVMConstNSWMul;
MesaLLVMConstNSWNeg = LLVMConstNSWNeg;
MesaLLVMConstNSWSub = LLVMConstNSWSub;
MesaLLVMConstNull = LLVMConstNull;
MesaLLVMConstNUWAdd = LLVMConstNUWAdd;
MesaLLVMConstNUWMul = LLVMConstNUWMul;
MesaLLVMConstNUWNeg = LLVMConstNUWNeg;
MesaLLVMConstNUWSub = LLVMConstNUWSub;
MesaLLVMConstOr = LLVMConstOr;
MesaLLVMConstPointerCast = LLVMConstPointerCast;
MesaLLVMConstPointerNull = LLVMConstPointerNull;
MesaLLVMConstPtrToInt = LLVMConstPtrToInt;
MesaLLVMConstReal = LLVMConstReal;
MesaLLVMConstRealOfString = LLVMConstRealOfString;
MesaLLVMConstRealOfStringAndSize = LLVMConstRealOfStringAndSize;
MesaLLVMConstSDiv = LLVMConstSDiv;
MesaLLVMConstSelect = LLVMConstSelect;
MesaLLVMConstSExt = LLVMConstSExt;
MesaLLVMConstSExtOrBitCast = LLVMConstSExtOrBitCast;
MesaLLVMConstShl = LLVMConstShl;
MesaLLVMConstShuffleVector = LLVMConstShuffleVector;
MesaLLVMConstSIToFP = LLVMConstSIToFP;
MesaLLVMConstSRem = LLVMConstSRem;
MesaLLVMConstString = LLVMConstString;
MesaLLVMConstStringInContext = LLVMConstStringInContext;
MesaLLVMConstStruct = LLVMConstStruct;
MesaLLVMConstStructInContext = LLVMConstStructInContext;
MesaLLVMConstSub = LLVMConstSub;
MesaLLVMConstTrunc = LLVMConstTrunc;
MesaLLVMConstTruncOrBitCast = LLVMConstTruncOrBitCast;
MesaLLVMConstUDiv = LLVMConstUDiv;
MesaLLVMConstUIToFP = LLVMConstUIToFP;
MesaLLVMConstURem = LLVMConstURem;
MesaLLVMConstVector = LLVMConstVector;
MesaLLVMConstXor = LLVMConstXor;
MesaLLVMConstZExt = LLVMConstZExt;
MesaLLVMConstZExtOrBitCast = LLVMConstZExtOrBitCast;
MesaLLVMContextCreate = LLVMContextCreate;
MesaLLVMContextDispose = LLVMContextDispose;
MesaLLVMCountBasicBlocks = LLVMCountBasicBlocks;
MesaLLVMCountIncoming = LLVMCountIncoming;
MesaLLVMCountParams = LLVMCountParams;
MesaLLVMCountParamTypes = LLVMCountParamTypes;
MesaLLVMCountStructElementTypes = LLVMCountStructElementTypes;
MesaLLVMCreateBuilder = LLVMCreateBuilder;
MesaLLVMCreateBuilderInContext = LLVMCreateBuilderInContext;
MesaLLVMCreateFunctionPassManager = LLVMCreateFunctionPassManager;
MesaLLVMCreateFunctionPassManagerForModule = LLVMCreateFunctionPassManagerForModule;
MesaLLVMCreateMemoryBufferWithContentsOfFile = LLVMCreateMemoryBufferWithContentsOfFile;
MesaLLVMCreateMemoryBufferWithMemoryRange = LLVMCreateMemoryBufferWithMemoryRange;
MesaLLVMCreateMemoryBufferWithMemoryRangeCopy = LLVMCreateMemoryBufferWithMemoryRangeCopy;
MesaLLVMCreateMemoryBufferWithSTDIN = LLVMCreateMemoryBufferWithSTDIN;
MesaLLVMCreateModuleProviderForExistingModule = LLVMCreateModuleProviderForExistingModule;
MesaLLVMCreatePassManager = LLVMCreatePassManager;
MesaLLVMDeleteBasicBlock = LLVMDeleteBasicBlock;
MesaLLVMDeleteFunction = LLVMDeleteFunction;
MesaLLVMDeleteGlobal = LLVMDeleteGlobal;
MesaLLVMDisposeBuilder = LLVMDisposeBuilder;
MesaLLVMDisposeMemoryBuffer = LLVMDisposeMemoryBuffer;
MesaLLVMDisposeMessage = LLVMDisposeMessage;
MesaLLVMDisposeModule = LLVMDisposeModule;
MesaLLVMDisposeModuleProvider = LLVMDisposeModuleProvider;
MesaLLVMDisposePassManager = LLVMDisposePassManager;
MesaLLVMDoubleType = LLVMDoubleType;
MesaLLVMDoubleTypeInContext = LLVMDoubleTypeInContext;
MesaLLVMDumpModule = LLVMDumpModule;
MesaLLVMDumpValue = LLVMDumpValue;
MesaLLVMFinalizeFunctionPassManager = LLVMFinalizeFunctionPassManager;
MesaLLVMFloatType = LLVMFloatType;
MesaLLVMFloatTypeInContext = LLVMFloatTypeInContext;
MesaLLVMFP128Type = LLVMFP128Type;
MesaLLVMFP128TypeInContext = LLVMFP128TypeInContext;
MesaLLVMFunctionType = LLVMFunctionType;
MesaLLVMGetAlignment = LLVMGetAlignment;
MesaLLVMGetArrayLength = LLVMGetArrayLength;
MesaLLVMGetAttribute = LLVMGetAttribute;
MesaLLVMGetBasicBlockParent = LLVMGetBasicBlockParent;
MesaLLVMGetBasicBlocks = LLVMGetBasicBlocks;
MesaLLVMGetBasicBlockTerminator = LLVMGetBasicBlockTerminator;
MesaLLVMGetBufferSize = LLVMGetBufferSize;
MesaLLVMGetBufferStart = LLVMGetBufferStart;
MesaLLVMGetConstOpcode = LLVMGetConstOpcode;
MesaLLVMGetCurrentDebugLocation = LLVMGetCurrentDebugLocation;
MesaLLVMGetDataLayout = LLVMGetDataLayout;
MesaLLVMGetElementType = LLVMGetElementType;
MesaLLVMGetEntryBasicBlock = LLVMGetEntryBasicBlock;
MesaLLVMGetFirstBasicBlock = LLVMGetFirstBasicBlock;
MesaLLVMGetFirstFunction = LLVMGetFirstFunction;
MesaLLVMGetFirstGlobal = LLVMGetFirstGlobal;
MesaLLVMGetFirstInstruction = LLVMGetFirstInstruction;
MesaLLVMGetFirstParam = LLVMGetFirstParam;
MesaLLVMGetFirstUse = LLVMGetFirstUse;
MesaLLVMGetFunctionAttr = LLVMGetFunctionAttr;
MesaLLVMGetFunctionCallConv = LLVMGetFunctionCallConv;
MesaLLVMGetGC = LLVMGetGC;
MesaLLVMGetGlobalContext = LLVMGetGlobalContext;
MesaLLVMGetGlobalParent = LLVMGetGlobalParent;
MesaLLVMGetGlobalPassRegistry = LLVMGetGlobalPassRegistry;
MesaLLVMGetICmpPredicate = LLVMGetICmpPredicate;
MesaLLVMGetIncomingBlock = LLVMGetIncomingBlock;
MesaLLVMGetIncomingValue = LLVMGetIncomingValue;
MesaLLVMGetInitializer = LLVMGetInitializer;
MesaLLVMGetInsertBlock = LLVMGetInsertBlock;
MesaLLVMGetInstructionCallConv = LLVMGetInstructionCallConv;
MesaLLVMGetInstructionOpcode = LLVMGetInstructionOpcode;
MesaLLVMGetInstructionParent = LLVMGetInstructionParent;
MesaLLVMGetIntrinsicID = LLVMGetIntrinsicID;
MesaLLVMGetIntTypeWidth = LLVMGetIntTypeWidth;
MesaLLVMGetLastBasicBlock = LLVMGetLastBasicBlock;
MesaLLVMGetLastFunction = LLVMGetLastFunction;
MesaLLVMGetLastGlobal = LLVMGetLastGlobal;
MesaLLVMGetLastInstruction = LLVMGetLastInstruction;
MesaLLVMGetLastParam = LLVMGetLastParam;
MesaLLVMGetLinkage = LLVMGetLinkage;
MesaLLVMGetMDKindID = LLVMGetMDKindID;
MesaLLVMGetMDKindIDInContext = LLVMGetMDKindIDInContext;
MesaLLVMGetMDNodeNumOperands = LLVMGetMDNodeNumOperands;
MesaLLVMGetMDNodeOperands = LLVMGetMDNodeOperands;
MesaLLVMGetMDString = LLVMGetMDString;
MesaLLVMGetMetadata = LLVMGetMetadata;
MesaLLVMGetModuleContext = LLVMGetModuleContext;
MesaLLVMGetNamedFunction = LLVMGetNamedFunction;
MesaLLVMGetNamedGlobal = LLVMGetNamedGlobal;
MesaLLVMGetNamedMetadataNumOperands = LLVMGetNamedMetadataNumOperands;
MesaLLVMGetNamedMetadataOperands = LLVMGetNamedMetadataOperands;
MesaLLVMGetNextBasicBlock = LLVMGetNextBasicBlock;
MesaLLVMGetNextFunction = LLVMGetNextFunction;
MesaLLVMGetNextGlobal = LLVMGetNextGlobal;
MesaLLVMGetNextInstruction = LLVMGetNextInstruction;
MesaLLVMGetNextParam = LLVMGetNextParam;
MesaLLVMGetNextUse = LLVMGetNextUse;
MesaLLVMGetNumOperands = LLVMGetNumOperands;
MesaLLVMGetOperand = LLVMGetOperand;
MesaLLVMGetParam = LLVMGetParam;
MesaLLVMGetParamParent = LLVMGetParamParent;
MesaLLVMGetParams = LLVMGetParams;
MesaLLVMGetParamTypes = LLVMGetParamTypes;
MesaLLVMGetPointerAddressSpace = LLVMGetPointerAddressSpace;
MesaLLVMGetPreviousBasicBlock = LLVMGetPreviousBasicBlock;
MesaLLVMGetPreviousFunction = LLVMGetPreviousFunction;
MesaLLVMGetPreviousGlobal = LLVMGetPreviousGlobal;
MesaLLVMGetPreviousInstruction = LLVMGetPreviousInstruction;
MesaLLVMGetPreviousParam = LLVMGetPreviousParam;
MesaLLVMGetReturnType = LLVMGetReturnType;
MesaLLVMGetSection = LLVMGetSection;
MesaLLVMGetStructElementTypes = LLVMGetStructElementTypes;
MesaLLVMGetStructName = LLVMGetStructName;
MesaLLVMGetSwitchDefaultDest = LLVMGetSwitchDefaultDest;
MesaLLVMGetTarget = LLVMGetTarget;
MesaLLVMGetThreadLocalMode = LLVMGetThreadLocalMode;
MesaLLVMGetTypeByName = LLVMGetTypeByName;
MesaLLVMGetTypeContext = LLVMGetTypeContext;
MesaLLVMGetTypeKind = LLVMGetTypeKind;
MesaLLVMGetUndef = LLVMGetUndef;
MesaLLVMGetUsedValue = LLVMGetUsedValue;
MesaLLVMGetUser = LLVMGetUser;
MesaLLVMGetValueName = LLVMGetValueName;
MesaLLVMGetVectorSize = LLVMGetVectorSize;
MesaLLVMGetVisibility = LLVMGetVisibility;
MesaLLVMGetVolatile = LLVMGetVolatile;
MesaLLVMHalfType = LLVMHalfType;
MesaLLVMHalfTypeInContext = LLVMHalfTypeInContext;
MesaLLVMHasMetadata = LLVMHasMetadata;
MesaLLVMInitializeCore = LLVMInitializeCore;
MesaLLVMInitializeFunctionPassManager = LLVMInitializeFunctionPassManager;
MesaLLVMInsertBasicBlock = LLVMInsertBasicBlock;
MesaLLVMInsertBasicBlockInContext = LLVMInsertBasicBlockInContext;
MesaLLVMInsertIntoBuilder = LLVMInsertIntoBuilder;
MesaLLVMInsertIntoBuilderWithName = LLVMInsertIntoBuilderWithName;
MesaLLVMInstructionEraseFromParent = LLVMInstructionEraseFromParent;
MesaLLVMInt16Type = LLVMInt16Type;
MesaLLVMInt16TypeInContext = LLVMInt16TypeInContext;
MesaLLVMInt1Type = LLVMInt1Type;
MesaLLVMInt1TypeInContext = LLVMInt1TypeInContext;
MesaLLVMInt32Type = LLVMInt32Type;
MesaLLVMInt32TypeInContext = LLVMInt32TypeInContext;
MesaLLVMInt64Type = LLVMInt64Type;
MesaLLVMInt64TypeInContext = LLVMInt64TypeInContext;
MesaLLVMInt8Type = LLVMInt8Type;
MesaLLVMInt8TypeInContext = LLVMInt8TypeInContext;
MesaLLVMIntType = LLVMIntType;
MesaLLVMIntTypeInContext = LLVMIntTypeInContext;
MesaLLVMIsAAllocaInst = LLVMIsAAllocaInst;
MesaLLVMIsAArgument = LLVMIsAArgument;
MesaLLVMIsABasicBlock = LLVMIsABasicBlock;
MesaLLVMIsABinaryOperator = LLVMIsABinaryOperator;
MesaLLVMIsABitCastInst = LLVMIsABitCastInst;
MesaLLVMIsABlockAddress = LLVMIsABlockAddress;
MesaLLVMIsABranchInst = LLVMIsABranchInst;
MesaLLVMIsACallInst = LLVMIsACallInst;
MesaLLVMIsACastInst = LLVMIsACastInst;
MesaLLVMIsACmpInst = LLVMIsACmpInst;
MesaLLVMIsAConstant = LLVMIsAConstant;
MesaLLVMIsAConstantAggregateZero = LLVMIsAConstantAggregateZero;
MesaLLVMIsAConstantArray = LLVMIsAConstantArray;
MesaLLVMIsAConstantExpr = LLVMIsAConstantExpr;
MesaLLVMIsAConstantFP = LLVMIsAConstantFP;
MesaLLVMIsAConstantInt = LLVMIsAConstantInt;
MesaLLVMIsAConstantPointerNull = LLVMIsAConstantPointerNull;
MesaLLVMIsAConstantStruct = LLVMIsAConstantStruct;
MesaLLVMIsAConstantVector = LLVMIsAConstantVector;
MesaLLVMIsADbgDeclareInst = LLVMIsADbgDeclareInst;
MesaLLVMIsADbgInfoIntrinsic = LLVMIsADbgInfoIntrinsic;
MesaLLVMIsAExtractElementInst = LLVMIsAExtractElementInst;
MesaLLVMIsAExtractValueInst = LLVMIsAExtractValueInst;
MesaLLVMIsAFCmpInst = LLVMIsAFCmpInst;
MesaLLVMIsAFPExtInst = LLVMIsAFPExtInst;
MesaLLVMIsAFPToSIInst = LLVMIsAFPToSIInst;
MesaLLVMIsAFPToUIInst = LLVMIsAFPToUIInst;
MesaLLVMIsAFPTruncInst = LLVMIsAFPTruncInst;
MesaLLVMIsAFunction = LLVMIsAFunction;
MesaLLVMIsAGetElementPtrInst = LLVMIsAGetElementPtrInst;
MesaLLVMIsAGlobalAlias = LLVMIsAGlobalAlias;
MesaLLVMIsAGlobalValue = LLVMIsAGlobalValue;
MesaLLVMIsAGlobalVariable = LLVMIsAGlobalVariable;
MesaLLVMIsAICmpInst = LLVMIsAICmpInst;
MesaLLVMIsAIndirectBrInst = LLVMIsAIndirectBrInst;
MesaLLVMIsAInlineAsm = LLVMIsAInlineAsm;
MesaLLVMIsAInsertElementInst = LLVMIsAInsertElementInst;
MesaLLVMIsAInsertValueInst = LLVMIsAInsertValueInst;
MesaLLVMIsAInstruction = LLVMIsAInstruction;
MesaLLVMIsAIntrinsicInst = LLVMIsAIntrinsicInst;
MesaLLVMIsAIntToPtrInst = LLVMIsAIntToPtrInst;
MesaLLVMIsAInvokeInst = LLVMIsAInvokeInst;
MesaLLVMIsALandingPadInst = LLVMIsALandingPadInst;
MesaLLVMIsALoadInst = LLVMIsALoadInst;
MesaLLVMIsAMDNode = LLVMIsAMDNode;
MesaLLVMIsAMDString = LLVMIsAMDString;
MesaLLVMIsAMemCpyInst = LLVMIsAMemCpyInst;
MesaLLVMIsAMemIntrinsic = LLVMIsAMemIntrinsic;
MesaLLVMIsAMemMoveInst = LLVMIsAMemMoveInst;
MesaLLVMIsAMemSetInst = LLVMIsAMemSetInst;
MesaLLVMIsAPHINode = LLVMIsAPHINode;
MesaLLVMIsAPtrToIntInst = LLVMIsAPtrToIntInst;
MesaLLVMIsAResumeInst = LLVMIsAResumeInst;
MesaLLVMIsAReturnInst = LLVMIsAReturnInst;
MesaLLVMIsASelectInst = LLVMIsASelectInst;
MesaLLVMIsASExtInst = LLVMIsASExtInst;
MesaLLVMIsAShuffleVectorInst = LLVMIsAShuffleVectorInst;
MesaLLVMIsASIToFPInst = LLVMIsASIToFPInst;
MesaLLVMIsAStoreInst = LLVMIsAStoreInst;
MesaLLVMIsASwitchInst = LLVMIsASwitchInst;
MesaLLVMIsATerminatorInst = LLVMIsATerminatorInst;
MesaLLVMIsATruncInst = LLVMIsATruncInst;
MesaLLVMIsAUIToFPInst = LLVMIsAUIToFPInst;
MesaLLVMIsAUnaryInstruction = LLVMIsAUnaryInstruction;
MesaLLVMIsAUndefValue = LLVMIsAUndefValue;
MesaLLVMIsAUnreachableInst = LLVMIsAUnreachableInst;
MesaLLVMIsAUser = LLVMIsAUser;
MesaLLVMIsAVAArgInst = LLVMIsAVAArgInst;
MesaLLVMIsAZExtInst = LLVMIsAZExtInst;
MesaLLVMIsConstant = LLVMIsConstant;
MesaLLVMIsDeclaration = LLVMIsDeclaration;
MesaLLVMIsExternallyInitialized = LLVMIsExternallyInitialized;
MesaLLVMIsFunctionVarArg = LLVMIsFunctionVarArg;
MesaLLVMIsGlobalConstant = LLVMIsGlobalConstant;
MesaLLVMIsMultithreaded = LLVMIsMultithreaded;
MesaLLVMIsNull = LLVMIsNull;
MesaLLVMIsOpaqueStruct = LLVMIsOpaqueStruct;
MesaLLVMIsPackedStruct = LLVMIsPackedStruct;
MesaLLVMIsTailCall = LLVMIsTailCall;
MesaLLVMIsThreadLocal = LLVMIsThreadLocal;
MesaLLVMIsUndef = LLVMIsUndef;
MesaLLVMLabelType = LLVMLabelType;
MesaLLVMLabelTypeInContext = LLVMLabelTypeInContext;
MesaLLVMMDNode = LLVMMDNode;
MesaLLVMMDNodeInContext = LLVMMDNodeInContext;
MesaLLVMMDString = LLVMMDString;
MesaLLVMMDStringInContext = LLVMMDStringInContext;
MesaLLVMModuleCreateWithName = LLVMModuleCreateWithName;
MesaLLVMModuleCreateWithNameInContext = LLVMModuleCreateWithNameInContext;
MesaLLVMMoveBasicBlockAfter = LLVMMoveBasicBlockAfter;
MesaLLVMMoveBasicBlockBefore = LLVMMoveBasicBlockBefore;
MesaLLVMPointerType = LLVMPointerType;
MesaLLVMPositionBuilder = LLVMPositionBuilder;
MesaLLVMPositionBuilderAtEnd = LLVMPositionBuilderAtEnd;
MesaLLVMPositionBuilderBefore = LLVMPositionBuilderBefore;
MesaLLVMPPCFP128Type = LLVMPPCFP128Type;
MesaLLVMPPCFP128TypeInContext = LLVMPPCFP128TypeInContext;
MesaLLVMPrintModuleToFile = LLVMPrintModuleToFile;
MesaLLVMRemoveAttribute = LLVMRemoveAttribute;
MesaLLVMRemoveBasicBlockFromParent = LLVMRemoveBasicBlockFromParent;
MesaLLVMRemoveFunctionAttr = LLVMRemoveFunctionAttr;
MesaLLVMRemoveInstrAttribute = LLVMRemoveInstrAttribute;
MesaLLVMReplaceAllUsesWith = LLVMReplaceAllUsesWith;
MesaLLVMRunFunctionPassManager = LLVMRunFunctionPassManager;
MesaLLVMRunPassManager = LLVMRunPassManager;
MesaLLVMSetAlignment = LLVMSetAlignment;
MesaLLVMSetCleanup = LLVMSetCleanup;
MesaLLVMSetCurrentDebugLocation = LLVMSetCurrentDebugLocation;
MesaLLVMSetDataLayout = LLVMSetDataLayout;
MesaLLVMSetExternallyInitialized = LLVMSetExternallyInitialized;
MesaLLVMSetFunctionCallConv = LLVMSetFunctionCallConv;
MesaLLVMSetGC = LLVMSetGC;
MesaLLVMSetGlobalConstant = LLVMSetGlobalConstant;
MesaLLVMSetInitializer = LLVMSetInitializer;
MesaLLVMSetInstDebugLocation = LLVMSetInstDebugLocation;
MesaLLVMSetInstrParamAlignment = LLVMSetInstrParamAlignment;
MesaLLVMSetInstructionCallConv = LLVMSetInstructionCallConv;
MesaLLVMSetLinkage = LLVMSetLinkage;
MesaLLVMSetMetadata = LLVMSetMetadata;
MesaLLVMSetModuleInlineAsm = LLVMSetModuleInlineAsm;
MesaLLVMSetOperand = LLVMSetOperand;
MesaLLVMSetParamAlignment = LLVMSetParamAlignment;
MesaLLVMSetSection = LLVMSetSection;
MesaLLVMSetTailCall = LLVMSetTailCall;
MesaLLVMSetTarget = LLVMSetTarget;
MesaLLVMSetThreadLocal = LLVMSetThreadLocal;
MesaLLVMSetThreadLocalMode = LLVMSetThreadLocalMode;
MesaLLVMSetValueName = LLVMSetValueName;
MesaLLVMSetVisibility = LLVMSetVisibility;
MesaLLVMSetVolatile = LLVMSetVolatile;
MesaLLVMShutdown = LLVMShutdown;
MesaLLVMSizeOf = LLVMSizeOf;
MesaLLVMStartMultithreaded = LLVMStartMultithreaded;
MesaLLVMStopMultithreaded = LLVMStopMultithreaded;
MesaLLVMStructCreateNamed = LLVMStructCreateNamed;
MesaLLVMStructSetBody = LLVMStructSetBody;
MesaLLVMStructType = LLVMStructType;
MesaLLVMStructTypeInContext = LLVMStructTypeInContext;
MesaLLVMTypeIsSized = LLVMTypeIsSized;
MesaLLVMTypeOf = LLVMTypeOf;
MesaLLVMValueAsBasicBlock = LLVMValueAsBasicBlock;
MesaLLVMValueIsBasicBlock = LLVMValueIsBasicBlock;
MesaLLVMVectorType = LLVMVectorType;
MesaLLVMVoidType = LLVMVoidType;
MesaLLVMVoidTypeInContext = LLVMVoidTypeInContext;
MesaLLVMX86FP80Type = LLVMX86FP80Type;
MesaLLVMX86FP80TypeInContext = LLVMX86FP80TypeInContext;
MesaLLVMX86MMXType = LLVMX86MMXType;
MesaLLVMX86MMXTypeInContext = LLVMX86MMXTypeInContext;
VERSION {
MesaLLVM_1.0 { global: MesaLLVM*; local: *; };
};
GROUP(libLLVMAArch64AsmParser.a libLLVMAArch64AsmPrinter.a libLLVMAArch64CodeGen.a libLLVMAArch64Desc.a libLLVMAArch64Disassembler.a libLLVMAArch64Info.a libLLVMAArch64Utils.a libLLVMAnalysis.a libLLVMArchive.a libLLVMARMAsmParser.a libLLVMARMAsmPrinter.a libLLVMARMCodeGen.a libLLVMARMDesc.a libLLVMARMDisassembler.a libLLVMARMInfo.a libLLVMAsmParser.a libLLVMAsmPrinter.a libLLVMBitReader.a libLLVMBitWriter.a libLLVMCodeGen.a libLLVMCore.a libLLVMCppBackendCodeGen.a libLLVMCppBackendInfo.a libLLVMDebugInfo.a libLLVMExecutionEngine.a libLLVMHexagonAsmPrinter.a libLLVMHexagonCodeGen.a libLLVMHexagonDesc.a libLLVMHexagonInfo.a libLLVMInstCombine.a libLLVMInstrumentation.a libLLVMInterpreter.a libLLVMipa.a libLLVMipo.a libLLVMIRReader.a libLLVMJIT.a libLLVMLinker.a libLLVMMBlazeAsmParser.a libLLVMMBlazeAsmPrinter.a libLLVMMBlazeCodeGen.a libLLVMMBlazeDesc.a libLLVMMBlazeDisassembler.a libLLVMMBlazeInfo.a libLLVMMC.a libLLVMMCDisassembler.a libLLVMMCJIT.a libLLVMMCParser.a libLLVMMipsAsmParser.a libLLVMMipsAsmPrinter.a libLLVMMipsCodeGen.a libLLVMMipsDesc.a libLLVMMipsDisassembler.a libLLVMMipsInfo.a libLLVMMSP430AsmPrinter.a libLLVMMSP430CodeGen.a libLLVMMSP430Desc.a libLLVMMSP430Info.a libLLVMNVPTXAsmPrinter.a libLLVMNVPTXCodeGen.a libLLVMNVPTXDesc.a libLLVMNVPTXInfo.a libLLVMObjCARCOpts.a libLLVMObject.a libLLVMOption.a libLLVMPowerPCAsmPrinter.a libLLVMPowerPCCodeGen.a libLLVMPowerPCDesc.a libLLVMPowerPCInfo.a libLLVMR600AsmPrinter.a libLLVMR600CodeGen.a libLLVMR600Desc.a libLLVMR600Info.a libLLVMRuntimeDyld.a libLLVMScalarOpts.a libLLVMSelectionDAG.a libLLVMSparcCodeGen.a libLLVMSparcDesc.a libLLVMSparcInfo.a libLLVMSupport.a libLLVMTableGen.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMVectorize.a libLLVMX86AsmParser.a libLLVMX86AsmPrinter.a libLLVMX86CodeGen.a libLLVMX86Desc.a libLLVMX86Disassembler.a libLLVMX86Info.a libLLVMX86Utils.a libLLVMXCoreAsmPrinter.a libLLVMXCoreCodeGen.a libLLVMXCoreDesc.a libLLVMXCoreDisassembler.a libLLVMXCoreInfo.a libLTO.a libprofile_rt.a)
/* Mesa llvm linker script */
EXTERN(
LLVMAddAlias
LLVMAddAttribute
LLVMAddCase
LLVMAddClause
LLVMAddDestination
LLVMAddFunction
LLVMAddFunctionAttr
LLVMAddGlobal
LLVMAddGlobalInAddressSpace
LLVMAddIncoming
LLVMAddInstrAttribute
LLVMAddNamedMetadataOperand
LLVMAddTargetDependentFunctionAttr
LLVMAlignOf
LLVMAppendBasicBlock
LLVMAppendBasicBlockInContext
LLVMArrayType
LLVMBasicBlockAsValue
LLVMBlockAddress
LLVMBuildAdd
LLVMBuildAggregateRet
LLVMBuildAlloca
LLVMBuildAnd
LLVMBuildArrayAlloca
LLVMBuildArrayMalloc
LLVMBuildAShr
LLVMBuildAtomicRMW
LLVMBuildBinOp
LLVMBuildBitCast
LLVMBuildBr
LLVMBuildCall
LLVMBuildCast
LLVMBuildCondBr
LLVMBuildExactSDiv
LLVMBuildExtractElement
LLVMBuildExtractValue
LLVMBuildFAdd
LLVMBuildFCmp
LLVMBuildFDiv
LLVMBuildFMul
LLVMBuildFNeg
LLVMBuildFPCast
LLVMBuildFPExt
LLVMBuildFPToSI
LLVMBuildFPToUI
LLVMBuildFPTrunc
LLVMBuildFree
LLVMBuildFRem
LLVMBuildFSub
LLVMBuildGEP
LLVMBuildGlobalString
LLVMBuildGlobalStringPtr
LLVMBuildICmp
LLVMBuildInBoundsGEP
LLVMBuildIndirectBr
LLVMBuildInsertElement
LLVMBuildInsertValue
LLVMBuildIntCast
LLVMBuildIntToPtr
LLVMBuildInvoke
LLVMBuildIsNotNull
LLVMBuildIsNull
LLVMBuildLandingPad
LLVMBuildLoad
LLVMBuildLShr
LLVMBuildMalloc
LLVMBuildMul
LLVMBuildNeg
LLVMBuildNot
LLVMBuildNSWAdd
LLVMBuildNSWMul
LLVMBuildNSWNeg
LLVMBuildNSWSub
LLVMBuildNUWAdd
LLVMBuildNUWMul
LLVMBuildNUWNeg
LLVMBuildNUWSub
LLVMBuildOr
LLVMBuildPhi
LLVMBuildPointerCast
LLVMBuildPtrDiff
LLVMBuildPtrToInt
LLVMBuildResume
LLVMBuildRet
LLVMBuildRetVoid
LLVMBuildSDiv
LLVMBuildSelect
LLVMBuildSExt
LLVMBuildSExtOrBitCast
LLVMBuildShl
LLVMBuildShuffleVector
LLVMBuildSIToFP
LLVMBuildSRem
LLVMBuildStore
LLVMBuildStructGEP
LLVMBuildSub
LLVMBuildSwitch
LLVMBuildTrunc
LLVMBuildTruncOrBitCast
LLVMBuildUDiv
LLVMBuildUIToFP
LLVMBuildUnreachable
LLVMBuildURem
LLVMBuildVAArg
LLVMBuildXor
LLVMBuildZExt
LLVMBuildZExtOrBitCast
LLVMClearInsertionPosition
LLVMConstAdd
LLVMConstAllOnes
LLVMConstAnd
LLVMConstArray
LLVMConstAShr
LLVMConstBitCast
LLVMConstExactSDiv
LLVMConstExtractElement
LLVMConstExtractValue
LLVMConstFAdd
LLVMConstFCmp
LLVMConstFDiv
LLVMConstFMul
LLVMConstFNeg
LLVMConstFPCast
LLVMConstFPExt
LLVMConstFPToSI
LLVMConstFPToUI
LLVMConstFPTrunc
LLVMConstFRem
LLVMConstFSub
LLVMConstGEP
LLVMConstICmp
LLVMConstInBoundsGEP
LLVMConstInlineAsm
LLVMConstInsertElement
LLVMConstInsertValue
LLVMConstInt
LLVMConstIntCast
LLVMConstIntGetSExtValue
LLVMConstIntGetZExtValue
LLVMConstIntOfArbitraryPrecision
LLVMConstIntOfString
LLVMConstIntOfStringAndSize
LLVMConstIntToPtr
LLVMConstLShr
LLVMConstMul
LLVMConstNamedStruct
LLVMConstNeg
LLVMConstNot
LLVMConstNSWAdd
LLVMConstNSWMul
LLVMConstNSWNeg
LLVMConstNSWSub
LLVMConstNull
LLVMConstNUWAdd
LLVMConstNUWMul
LLVMConstNUWNeg
LLVMConstNUWSub
LLVMConstOr
LLVMConstPointerCast
LLVMConstPointerNull
LLVMConstPtrToInt
LLVMConstReal
LLVMConstRealOfString
LLVMConstRealOfStringAndSize
LLVMConstSDiv
LLVMConstSelect
LLVMConstSExt
LLVMConstSExtOrBitCast
LLVMConstShl
LLVMConstShuffleVector
LLVMConstSIToFP
LLVMConstSRem
LLVMConstString
LLVMConstStringInContext
LLVMConstStruct
LLVMConstStructInContext
LLVMConstSub
LLVMConstTrunc
LLVMConstTruncOrBitCast
LLVMConstUDiv
LLVMConstUIToFP
LLVMConstURem
LLVMConstVector
LLVMConstXor
LLVMConstZExt
LLVMConstZExtOrBitCast
LLVMContextCreate
LLVMContextDispose
LLVMCountBasicBlocks
LLVMCountIncoming
LLVMCountParams
LLVMCountParamTypes
LLVMCountStructElementTypes
LLVMCreateBuilder
LLVMCreateBuilderInContext
LLVMCreateFunctionPassManager
LLVMCreateFunctionPassManagerForModule
LLVMCreateMemoryBufferWithContentsOfFile
LLVMCreateMemoryBufferWithMemoryRange
LLVMCreateMemoryBufferWithMemoryRangeCopy
LLVMCreateMemoryBufferWithSTDIN
LLVMCreateModuleProviderForExistingModule
LLVMCreatePassManager
LLVMDeleteBasicBlock
LLVMDeleteFunction
LLVMDeleteGlobal
LLVMDisposeBuilder
LLVMDisposeMemoryBuffer
LLVMDisposeMessage
LLVMDisposeModule
LLVMDisposeModuleProvider
LLVMDisposePassManager
LLVMDoubleType
LLVMDoubleTypeInContext
LLVMDumpModule
LLVMDumpValue
LLVMFinalizeFunctionPassManager
LLVMFloatType
LLVMFloatTypeInContext
LLVMFP128Type
LLVMFP128TypeInContext
LLVMFunctionType
LLVMGetAlignment
LLVMGetArrayLength
LLVMGetAttribute
LLVMGetBasicBlockParent
LLVMGetBasicBlocks
LLVMGetBasicBlockTerminator
LLVMGetBufferSize
LLVMGetBufferStart
LLVMGetConstOpcode
LLVMGetCurrentDebugLocation
LLVMGetDataLayout
LLVMGetElementType
LLVMGetEntryBasicBlock
LLVMGetFirstBasicBlock
LLVMGetFirstFunction
LLVMGetFirstGlobal
LLVMGetFirstInstruction
LLVMGetFirstParam
LLVMGetFirstUse
LLVMGetFunctionAttr
LLVMGetFunctionCallConv
LLVMGetGC
LLVMGetGlobalContext
LLVMGetGlobalParent
LLVMGetGlobalPassRegistry
LLVMGetICmpPredicate
LLVMGetIncomingBlock
LLVMGetIncomingValue
LLVMGetInitializer
LLVMGetInsertBlock
LLVMGetInstructionCallConv
LLVMGetInstructionOpcode
LLVMGetInstructionParent
LLVMGetIntrinsicID
LLVMGetIntTypeWidth
LLVMGetLastBasicBlock
LLVMGetLastFunction
LLVMGetLastGlobal
LLVMGetLastInstruction
LLVMGetLastParam
LLVMGetLinkage
LLVMGetMDKindID
LLVMGetMDKindIDInContext
LLVMGetMDNodeNumOperands
LLVMGetMDNodeOperands
LLVMGetMDString
LLVMGetMetadata
LLVMGetModuleContext
LLVMGetNamedFunction
LLVMGetNamedGlobal
LLVMGetNamedMetadataNumOperands
LLVMGetNamedMetadataOperands
LLVMGetNextBasicBlock
LLVMGetNextFunction
LLVMGetNextGlobal
LLVMGetNextInstruction
LLVMGetNextParam
LLVMGetNextUse
LLVMGetNumOperands
LLVMGetOperand
LLVMGetParam
LLVMGetParamParent
LLVMGetParams
LLVMGetParamTypes
LLVMGetPointerAddressSpace
LLVMGetPreviousBasicBlock
LLVMGetPreviousFunction
LLVMGetPreviousGlobal
LLVMGetPreviousInstruction
LLVMGetPreviousParam
LLVMGetReturnType
LLVMGetSection
LLVMGetStructElementTypes
LLVMGetStructName
LLVMGetSwitchDefaultDest
LLVMGetTarget
LLVMGetThreadLocalMode
LLVMGetTypeByName
LLVMGetTypeContext
LLVMGetTypeKind
LLVMGetUndef
LLVMGetUsedValue
LLVMGetUser
LLVMGetValueName
LLVMGetVectorSize
LLVMGetVisibility
LLVMGetVolatile
LLVMHalfType
LLVMHalfTypeInContext
LLVMHasMetadata
LLVMInitializeCore
LLVMInitializeFunctionPassManager
LLVMInsertBasicBlock
LLVMInsertBasicBlockInContext
LLVMInsertIntoBuilder
LLVMInsertIntoBuilderWithName
LLVMInstructionEraseFromParent
LLVMInt16Type
LLVMInt16TypeInContext
LLVMInt1Type
LLVMInt1TypeInContext
LLVMInt32Type
LLVMInt32TypeInContext
LLVMInt64Type
LLVMInt64TypeInContext
LLVMInt8Type
LLVMInt8TypeInContext
LLVMIntType
LLVMIntTypeInContext
LLVMIsAAllocaInst
LLVMIsAArgument
LLVMIsABasicBlock
LLVMIsABinaryOperator
LLVMIsABitCastInst
LLVMIsABlockAddress
LLVMIsABranchInst
LLVMIsACallInst
LLVMIsACastInst
LLVMIsACmpInst
LLVMIsAConstant
LLVMIsAConstantAggregateZero
LLVMIsAConstantArray
LLVMIsAConstantExpr
LLVMIsAConstantFP
LLVMIsAConstantInt
LLVMIsAConstantPointerNull
LLVMIsAConstantStruct
LLVMIsAConstantVector
LLVMIsADbgDeclareInst
LLVMIsADbgInfoIntrinsic
LLVMIsAExtractElementInst
LLVMIsAExtractValueInst
LLVMIsAFCmpInst
LLVMIsAFPExtInst
LLVMIsAFPToSIInst
LLVMIsAFPToUIInst
LLVMIsAFPTruncInst
LLVMIsAFunction
LLVMIsAGetElementPtrInst
LLVMIsAGlobalAlias
LLVMIsAGlobalValue
LLVMIsAGlobalVariable
LLVMIsAICmpInst
LLVMIsAIndirectBrInst
LLVMIsAInlineAsm
LLVMIsAInsertElementInst
LLVMIsAInsertValueInst
LLVMIsAInstruction
LLVMIsAIntrinsicInst
LLVMIsAIntToPtrInst
LLVMIsAInvokeInst
LLVMIsALandingPadInst
LLVMIsALoadInst
LLVMIsAMDNode
LLVMIsAMDString
LLVMIsAMemCpyInst
LLVMIsAMemIntrinsic
LLVMIsAMemMoveInst
LLVMIsAMemSetInst
LLVMIsAPHINode
LLVMIsAPtrToIntInst
LLVMIsAResumeInst
LLVMIsAReturnInst
LLVMIsASelectInst
LLVMIsASExtInst
LLVMIsAShuffleVectorInst
LLVMIsASIToFPInst
LLVMIsAStoreInst
LLVMIsASwitchInst
LLVMIsATerminatorInst
LLVMIsATruncInst
LLVMIsAUIToFPInst
LLVMIsAUnaryInstruction
LLVMIsAUndefValue
LLVMIsAUnreachableInst
LLVMIsAUser
LLVMIsAVAArgInst
LLVMIsAZExtInst
LLVMIsConstant
LLVMIsDeclaration
LLVMIsExternallyInitialized
LLVMIsFunctionVarArg
LLVMIsGlobalConstant
LLVMIsMultithreaded
LLVMIsNull
LLVMIsOpaqueStruct
LLVMIsPackedStruct
LLVMIsTailCall
LLVMIsThreadLocal
LLVMIsUndef
LLVMLabelType
LLVMLabelTypeInContext
LLVMMDNode
LLVMMDNodeInContext
LLVMMDString
LLVMMDStringInContext
LLVMModuleCreateWithName
LLVMModuleCreateWithNameInContext
LLVMMoveBasicBlockAfter
LLVMMoveBasicBlockBefore
LLVMPointerType
LLVMPositionBuilder
LLVMPositionBuilderAtEnd
LLVMPositionBuilderBefore
LLVMPPCFP128Type
LLVMPPCFP128TypeInContext
LLVMPrintModuleToFile
LLVMRemoveAttribute
LLVMRemoveBasicBlockFromParent
LLVMRemoveFunctionAttr
LLVMRemoveInstrAttribute
LLVMReplaceAllUsesWith
LLVMRunFunctionPassManager
LLVMRunPassManager
LLVMSetAlignment
LLVMSetCleanup
LLVMSetCurrentDebugLocation
LLVMSetDataLayout
LLVMSetExternallyInitialized
LLVMSetFunctionCallConv
LLVMSetGC
LLVMSetGlobalConstant
LLVMSetInitializer
LLVMSetInstDebugLocation
LLVMSetInstrParamAlignment
LLVMSetInstructionCallConv
LLVMSetLinkage
LLVMSetMetadata
LLVMSetModuleInlineAsm
LLVMSetOperand
LLVMSetParamAlignment
LLVMSetSection
LLVMSetTailCall
LLVMSetTarget
LLVMSetThreadLocal
LLVMSetThreadLocalMode
LLVMSetValueName
LLVMSetVisibility
LLVMSetVolatile
LLVMShutdown
LLVMSizeOf
LLVMStartMultithreaded
LLVMStopMultithreaded
LLVMStructCreateNamed
LLVMStructSetBody
LLVMStructType
LLVMStructTypeInContext
LLVMTypeIsSized
LLVMTypeOf
LLVMValueAsBasicBlock
LLVMValueIsBasicBlock
LLVMVectorType
LLVMVoidType
LLVMVoidTypeInContext
LLVMX86FP80Type
LLVMX86FP80TypeInContext
LLVMX86MMXType
LLVMX86MMXTypeInContext
)
VERSION {
MesaLLVM_1.0 { global: LLVM*; local: *; };
};
GROUP(libLLVMAArch64AsmParser.a libLLVMAArch64AsmPrinter.a libLLVMAArch64CodeGen.a libLLVMAArch64Desc.a libLLVMAArch64Disassembler.a libLLVMAArch64Info.a libLLVMAArch64Utils.a libLLVMAnalysis.a libLLVMArchive.a libLLVMARMAsmParser.a libLLVMARMAsmPrinter.a libLLVMARMCodeGen.a libLLVMARMDesc.a libLLVMARMDisassembler.a libLLVMARMInfo.a libLLVMAsmParser.a libLLVMAsmPrinter.a libLLVMBitReader.a libLLVMBitWriter.a libLLVMCodeGen.a libLLVMCore.a libLLVMCppBackendCodeGen.a libLLVMCppBackendInfo.a libLLVMDebugInfo.a libLLVMExecutionEngine.a libLLVMHexagonAsmPrinter.a libLLVMHexagonCodeGen.a libLLVMHexagonDesc.a libLLVMHexagonInfo.a libLLVMInstCombine.a libLLVMInstrumentation.a libLLVMInterpreter.a libLLVMipa.a libLLVMipo.a libLLVMIRReader.a libLLVMJIT.a libLLVMLinker.a libLLVMMBlazeAsmParser.a libLLVMMBlazeAsmPrinter.a libLLVMMBlazeCodeGen.a libLLVMMBlazeDesc.a libLLVMMBlazeDisassembler.a libLLVMMBlazeInfo.a libLLVMMC.a libLLVMMCDisassembler.a libLLVMMCJIT.a libLLVMMCParser.a libLLVMMipsAsmParser.a libLLVMMipsAsmPrinter.a libLLVMMipsCodeGen.a libLLVMMipsDesc.a libLLVMMipsDisassembler.a libLLVMMipsInfo.a libLLVMMSP430AsmPrinter.a libLLVMMSP430CodeGen.a libLLVMMSP430Desc.a libLLVMMSP430Info.a libLLVMNVPTXAsmPrinter.a libLLVMNVPTXCodeGen.a libLLVMNVPTXDesc.a libLLVMNVPTXInfo.a libLLVMObjCARCOpts.a libLLVMObject.a libLLVMOption.a libLLVMPowerPCAsmPrinter.a libLLVMPowerPCCodeGen.a libLLVMPowerPCDesc.a libLLVMPowerPCInfo.a libLLVMR600AsmPrinter.a libLLVMR600CodeGen.a libLLVMR600Desc.a libLLVMR600Info.a libLLVMRuntimeDyld.a libLLVMScalarOpts.a libLLVMSelectionDAG.a libLLVMSparcCodeGen.a libLLVMSparcDesc.a libLLVMSparcInfo.a libLLVMSupport.a libLLVMTableGen.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMVectorize.a libLLVMX86AsmParser.a libLLVMX86AsmPrinter.a libLLVMX86CodeGen.a libLLVMX86Desc.a libLLVMX86Disassembler.a libLLVMX86Info.a libLLVMX86Utils.a libLLVMXCoreAsmPrinter.a libLLVMXCoreCodeGen.a libLLVMXCoreDesc.a libLLVMXCoreDisassembler.a libLLVMXCoreInfo.a libLTO.a libprofile_rt.a)
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to