(* Wolfram Language Source File *)

(*****************************************************

		Source file generated by Wolfram Language AutoLibraryLink
		Package.  Understand that AutoLibraryLink might in the future
		overwrite any custom changes to this source code.

		Package: LLVMLink`llvmc
		Generated on behalf of: brenton
		CreationDate: Thu 13 Dec 2018 07:37:19

*******************************************************)



LLVMEnumeration["LLVMVerifierFailureAction", "LLVMAbortProcessAction"] = 0;

LLVMEnumeration["LLVMVerifierFailureAction", "LLVMPrintMessageAction"] = 1;

LLVMEnumeration["LLVMVerifierFailureAction", "LLVMReturnStatusAction"] = 2;

LLVMEnumeration["LLVMComdatSelectionKind", "LLVMAnyComdatSelectionKind"] = 0;

LLVMEnumeration["LLVMComdatSelectionKind", "LLVMExactMatchComdatSelectionKind"] = 1;

LLVMEnumeration["LLVMComdatSelectionKind", "LLVMLargestComdatSelectionKind"] = 2;

LLVMEnumeration["LLVMComdatSelectionKind", "LLVMNoDuplicatesComdatSelectionKind"] = 3;

LLVMEnumeration["LLVMComdatSelectionKind", "LLVMSameSizeComdatSelectionKind"] = 4;

LLVMEnumeration["anonymousEnum0", "LLVMAttributeReturnIndex"] = 0;

LLVMEnumeration["anonymousEnum0", "LLVMAttributeFunctionIndex"] = -1;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingNotAtomic"] = 0;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingUnordered"] = 1;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingMonotonic"] = 2;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingAcquire"] = 4;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingRelease"] = 5;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingAcquireRelease"] = 6;

LLVMEnumeration["LLVMAtomicOrdering", "LLVMAtomicOrderingSequentiallyConsistent"] = 7;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpXchg"] = 0;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpAdd"] = 1;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpSub"] = 2;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpAnd"] = 3;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpNand"] = 4;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpOr"] = 5;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpXor"] = 6;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpMax"] = 7;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpMin"] = 8;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpUMax"] = 9;

LLVMEnumeration["LLVMAtomicRMWBinOp", "LLVMAtomicRMWBinOpUMin"] = 10;

LLVMEnumeration["LLVMCallConv", "LLVMCCallConv"] = 0;

LLVMEnumeration["LLVMCallConv", "LLVMFastCallConv"] = 8;

LLVMEnumeration["LLVMCallConv", "LLVMColdCallConv"] = 9;

LLVMEnumeration["LLVMCallConv", "LLVMGHCCallConv"] = 10;

LLVMEnumeration["LLVMCallConv", "LLVMHiPECallConv"] = 11;

LLVMEnumeration["LLVMCallConv", "LLVMWebKitJSCallConv"] = 12;

LLVMEnumeration["LLVMCallConv", "LLVMAnyRegCallConv"] = 13;

LLVMEnumeration["LLVMCallConv", "LLVMPreserveMostCallConv"] = 14;

LLVMEnumeration["LLVMCallConv", "LLVMPreserveAllCallConv"] = 15;

LLVMEnumeration["LLVMCallConv", "LLVMSwiftCallConv"] = 16;

LLVMEnumeration["LLVMCallConv", "LLVMCXXFASTTLSCallConv"] = 17;

LLVMEnumeration["LLVMCallConv", "LLVMX86StdcallCallConv"] = 64;

LLVMEnumeration["LLVMCallConv", "LLVMX86FastcallCallConv"] = 65;

LLVMEnumeration["LLVMCallConv", "LLVMARMAPCSCallConv"] = 66;

LLVMEnumeration["LLVMCallConv", "LLVMARMAAPCSCallConv"] = 67;

LLVMEnumeration["LLVMCallConv", "LLVMARMAAPCSVFPCallConv"] = 68;

LLVMEnumeration["LLVMCallConv", "LLVMMSP430INTRCallConv"] = 69;

LLVMEnumeration["LLVMCallConv", "LLVMX86ThisCallCallConv"] = 70;

LLVMEnumeration["LLVMCallConv", "LLVMPTXKernelCallConv"] = 71;

LLVMEnumeration["LLVMCallConv", "LLVMPTXDeviceCallConv"] = 72;

LLVMEnumeration["LLVMCallConv", "LLVMSPIRFUNCCallConv"] = 75;

LLVMEnumeration["LLVMCallConv", "LLVMSPIRKERNELCallConv"] = 76;

LLVMEnumeration["LLVMCallConv", "LLVMIntelOCLBICallConv"] = 77;

LLVMEnumeration["LLVMCallConv", "LLVMX8664SysVCallConv"] = 78;

LLVMEnumeration["LLVMCallConv", "LLVMWin64CallConv"] = 79;

LLVMEnumeration["LLVMCallConv", "LLVMX86VectorCallCallConv"] = 80;

LLVMEnumeration["LLVMCallConv", "LLVMHHVMCallConv"] = 81;

LLVMEnumeration["LLVMCallConv", "LLVMHHVMCCallConv"] = 82;

LLVMEnumeration["LLVMCallConv", "LLVMX86INTRCallConv"] = 83;

LLVMEnumeration["LLVMCallConv", "LLVMAVRINTRCallConv"] = 84;

LLVMEnumeration["LLVMCallConv", "LLVMAVRSIGNALCallConv"] = 85;

LLVMEnumeration["LLVMCallConv", "LLVMAVRBUILTINCallConv"] = 86;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUVSCallConv"] = 87;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUGSCallConv"] = 88;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUPSCallConv"] = 89;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUCSCallConv"] = 90;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUKERNELCallConv"] = 91;

LLVMEnumeration["LLVMCallConv", "LLVMX86RegCallCallConv"] = 92;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUHSCallConv"] = 93;

LLVMEnumeration["LLVMCallConv", "LLVMMSP430BUILTINCallConv"] = 94;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPULSCallConv"] = 95;

LLVMEnumeration["LLVMCallConv", "LLVMAMDGPUESCallConv"] = 96;

LLVMEnumeration["LLVMDiagnosticSeverity", "LLVMDSError"] = 0;

LLVMEnumeration["LLVMDiagnosticSeverity", "LLVMDSWarning"] = 1;

LLVMEnumeration["LLVMDiagnosticSeverity", "LLVMDSRemark"] = 2;

LLVMEnumeration["LLVMDiagnosticSeverity", "LLVMDSNote"] = 3;

LLVMEnumeration["LLVMDLLStorageClass", "LLVMDefaultStorageClass"] = 0;

LLVMEnumeration["LLVMDLLStorageClass", "LLVMDLLImportStorageClass"] = 1;

LLVMEnumeration["LLVMDLLStorageClass", "LLVMDLLExportStorageClass"] = 2;

LLVMEnumeration["LLVMInlineAsmDialect", "LLVMInlineAsmDialectATT"] = 0;

LLVMEnumeration["LLVMInlineAsmDialect", "LLVMInlineAsmDialectIntel"] = 1;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntEQ"] = 32;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntNE"] = 33;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntUGT"] = 34;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntUGE"] = 35;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntULT"] = 36;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntULE"] = 37;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntSGT"] = 38;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntSGE"] = 39;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntSLT"] = 40;

LLVMEnumeration["LLVMIntPredicate", "LLVMIntSLE"] = 41;

LLVMEnumeration["LLVMLandingPadClauseTy", "LLVMLandingPadCatch"] = 0;

LLVMEnumeration["LLVMLandingPadClauseTy", "LLVMLandingPadFilter"] = 1;

LLVMEnumeration["LLVMLinkage", "LLVMExternalLinkage"] = 0;

LLVMEnumeration["LLVMLinkage", "LLVMAvailableExternallyLinkage"] = 1;

LLVMEnumeration["LLVMLinkage", "LLVMLinkOnceAnyLinkage"] = 2;

LLVMEnumeration["LLVMLinkage", "LLVMLinkOnceODRLinkage"] = 3;

LLVMEnumeration["LLVMLinkage", "LLVMLinkOnceODRAutoHideLinkage"] = 4;

LLVMEnumeration["LLVMLinkage", "LLVMWeakAnyLinkage"] = 5;

LLVMEnumeration["LLVMLinkage", "LLVMWeakODRLinkage"] = 6;

LLVMEnumeration["LLVMLinkage", "LLVMAppendingLinkage"] = 7;

LLVMEnumeration["LLVMLinkage", "LLVMInternalLinkage"] = 8;

LLVMEnumeration["LLVMLinkage", "LLVMPrivateLinkage"] = 9;

LLVMEnumeration["LLVMLinkage", "LLVMDLLImportLinkage"] = 10;

LLVMEnumeration["LLVMLinkage", "LLVMDLLExportLinkage"] = 11;

LLVMEnumeration["LLVMLinkage", "LLVMExternalWeakLinkage"] = 12;

LLVMEnumeration["LLVMLinkage", "LLVMGhostLinkage"] = 13;

LLVMEnumeration["LLVMLinkage", "LLVMCommonLinkage"] = 14;

LLVMEnumeration["LLVMLinkage", "LLVMLinkerPrivateLinkage"] = 15;

LLVMEnumeration["LLVMLinkage", "LLVMLinkerPrivateWeakLinkage"] = 16;

LLVMEnumeration["LLVMModuleFlagBehavior", "LLVMModuleFlagBehaviorError"] = 0;

LLVMEnumeration["LLVMModuleFlagBehavior", "LLVMModuleFlagBehaviorWarning"] = 1;

LLVMEnumeration["LLVMModuleFlagBehavior", "LLVMModuleFlagBehaviorRequire"] = 2;

LLVMEnumeration["LLVMModuleFlagBehavior", "LLVMModuleFlagBehaviorOverride"] = 3;

LLVMEnumeration["LLVMModuleFlagBehavior", "LLVMModuleFlagBehaviorAppend"] = 4;

LLVMEnumeration["LLVMModuleFlagBehavior", "LLVMModuleFlagBehaviorAppendUnique"] = 5;

LLVMEnumeration["LLVMOpcode", "LLVMRet"] = 1;

LLVMEnumeration["LLVMOpcode", "LLVMBr"] = 2;

LLVMEnumeration["LLVMOpcode", "LLVMSwitch"] = 3;

LLVMEnumeration["LLVMOpcode", "LLVMIndirectBr"] = 4;

LLVMEnumeration["LLVMOpcode", "LLVMInvoke"] = 5;

LLVMEnumeration["LLVMOpcode", "LLVMUnreachable"] = 7;

LLVMEnumeration["LLVMOpcode", "LLVMAdd"] = 8;

LLVMEnumeration["LLVMOpcode", "LLVMFAdd"] = 9;

LLVMEnumeration["LLVMOpcode", "LLVMSub"] = 10;

LLVMEnumeration["LLVMOpcode", "LLVMFSub"] = 11;

LLVMEnumeration["LLVMOpcode", "LLVMMul"] = 12;

LLVMEnumeration["LLVMOpcode", "LLVMFMul"] = 13;

LLVMEnumeration["LLVMOpcode", "LLVMUDiv"] = 14;

LLVMEnumeration["LLVMOpcode", "LLVMSDiv"] = 15;

LLVMEnumeration["LLVMOpcode", "LLVMFDiv"] = 16;

LLVMEnumeration["LLVMOpcode", "LLVMURem"] = 17;

LLVMEnumeration["LLVMOpcode", "LLVMSRem"] = 18;

LLVMEnumeration["LLVMOpcode", "LLVMFRem"] = 19;

LLVMEnumeration["LLVMOpcode", "LLVMShl"] = 20;

LLVMEnumeration["LLVMOpcode", "LLVMLShr"] = 21;

LLVMEnumeration["LLVMOpcode", "LLVMAShr"] = 22;

LLVMEnumeration["LLVMOpcode", "LLVMAnd"] = 23;

LLVMEnumeration["LLVMOpcode", "LLVMOr"] = 24;

LLVMEnumeration["LLVMOpcode", "LLVMXor"] = 25;

LLVMEnumeration["LLVMOpcode", "LLVMAlloca"] = 26;

LLVMEnumeration["LLVMOpcode", "LLVMLoad"] = 27;

LLVMEnumeration["LLVMOpcode", "LLVMStore"] = 28;

LLVMEnumeration["LLVMOpcode", "LLVMGetElementPtr"] = 29;

LLVMEnumeration["LLVMOpcode", "LLVMTrunc"] = 30;

LLVMEnumeration["LLVMOpcode", "LLVMZExt"] = 31;

LLVMEnumeration["LLVMOpcode", "LLVMSExt"] = 32;

LLVMEnumeration["LLVMOpcode", "LLVMFPToUI"] = 33;

LLVMEnumeration["LLVMOpcode", "LLVMFPToSI"] = 34;

LLVMEnumeration["LLVMOpcode", "LLVMUIToFP"] = 35;

LLVMEnumeration["LLVMOpcode", "LLVMSIToFP"] = 36;

LLVMEnumeration["LLVMOpcode", "LLVMFPTrunc"] = 37;

LLVMEnumeration["LLVMOpcode", "LLVMFPExt"] = 38;

LLVMEnumeration["LLVMOpcode", "LLVMPtrToInt"] = 39;

LLVMEnumeration["LLVMOpcode", "LLVMIntToPtr"] = 40;

LLVMEnumeration["LLVMOpcode", "LLVMBitCast"] = 41;

LLVMEnumeration["LLVMOpcode", "LLVMAddrSpaceCast"] = 60;

LLVMEnumeration["LLVMOpcode", "LLVMICmp"] = 42;

LLVMEnumeration["LLVMOpcode", "LLVMFCmp"] = 43;

LLVMEnumeration["LLVMOpcode", "LLVMPHI"] = 44;

LLVMEnumeration["LLVMOpcode", "LLVMCall"] = 45;

LLVMEnumeration["LLVMOpcode", "LLVMSelect"] = 46;

LLVMEnumeration["LLVMOpcode", "LLVMUserOp1"] = 47;

LLVMEnumeration["LLVMOpcode", "LLVMUserOp2"] = 48;

LLVMEnumeration["LLVMOpcode", "LLVMVAArg"] = 49;

LLVMEnumeration["LLVMOpcode", "LLVMExtractElement"] = 50;

LLVMEnumeration["LLVMOpcode", "LLVMInsertElement"] = 51;

LLVMEnumeration["LLVMOpcode", "LLVMShuffleVector"] = 52;

LLVMEnumeration["LLVMOpcode", "LLVMExtractValue"] = 53;

LLVMEnumeration["LLVMOpcode", "LLVMInsertValue"] = 54;

LLVMEnumeration["LLVMOpcode", "LLVMFence"] = 55;

LLVMEnumeration["LLVMOpcode", "LLVMAtomicCmpXchg"] = 56;

LLVMEnumeration["LLVMOpcode", "LLVMAtomicRMW"] = 57;

LLVMEnumeration["LLVMOpcode", "LLVMResume"] = 58;

LLVMEnumeration["LLVMOpcode", "LLVMLandingPad"] = 59;

LLVMEnumeration["LLVMOpcode", "LLVMCleanupRet"] = 61;

LLVMEnumeration["LLVMOpcode", "LLVMCatchRet"] = 62;

LLVMEnumeration["LLVMOpcode", "LLVMCatchPad"] = 63;

LLVMEnumeration["LLVMOpcode", "LLVMCleanupPad"] = 64;

LLVMEnumeration["LLVMOpcode", "LLVMCatchSwitch"] = 65;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealPredicateFalse"] = 0;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealOEQ"] = 1;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealOGT"] = 2;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealOGE"] = 3;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealOLT"] = 4;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealOLE"] = 5;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealONE"] = 6;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealORD"] = 7;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealUNO"] = 8;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealUEQ"] = 9;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealUGT"] = 10;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealUGE"] = 11;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealULT"] = 12;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealULE"] = 13;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealUNE"] = 14;

LLVMEnumeration["LLVMRealPredicate", "LLVMRealPredicateTrue"] = 15;

LLVMEnumeration["LLVMThreadLocalMode", "LLVMNotThreadLocal"] = 0;

LLVMEnumeration["LLVMThreadLocalMode", "LLVMGeneralDynamicTLSModel"] = 1;

LLVMEnumeration["LLVMThreadLocalMode", "LLVMLocalDynamicTLSModel"] = 2;

LLVMEnumeration["LLVMThreadLocalMode", "LLVMInitialExecTLSModel"] = 3;

LLVMEnumeration["LLVMThreadLocalMode", "LLVMLocalExecTLSModel"] = 4;

LLVMEnumeration["LLVMTypeKind", "LLVMVoidTypeKind"] = 0;

LLVMEnumeration["LLVMTypeKind", "LLVMHalfTypeKind"] = 1;

LLVMEnumeration["LLVMTypeKind", "LLVMFloatTypeKind"] = 2;

LLVMEnumeration["LLVMTypeKind", "LLVMDoubleTypeKind"] = 3;

LLVMEnumeration["LLVMTypeKind", "LLVMX86_FP80TypeKind"] = 4;

LLVMEnumeration["LLVMTypeKind", "LLVMFP128TypeKind"] = 5;

LLVMEnumeration["LLVMTypeKind", "LLVMPPC_FP128TypeKind"] = 6;

LLVMEnumeration["LLVMTypeKind", "LLVMLabelTypeKind"] = 7;

LLVMEnumeration["LLVMTypeKind", "LLVMIntegerTypeKind"] = 8;

LLVMEnumeration["LLVMTypeKind", "LLVMFunctionTypeKind"] = 9;

LLVMEnumeration["LLVMTypeKind", "LLVMStructTypeKind"] = 10;

LLVMEnumeration["LLVMTypeKind", "LLVMArrayTypeKind"] = 11;

LLVMEnumeration["LLVMTypeKind", "LLVMPointerTypeKind"] = 12;

LLVMEnumeration["LLVMTypeKind", "LLVMVectorTypeKind"] = 13;

LLVMEnumeration["LLVMTypeKind", "LLVMMetadataTypeKind"] = 14;

LLVMEnumeration["LLVMTypeKind", "LLVMX86_MMXTypeKind"] = 15;

LLVMEnumeration["LLVMTypeKind", "LLVMTokenTypeKind"] = 16;

LLVMEnumeration["LLVMUnnamedAddr", "LLVMNoUnnamedAddr"] = 0;

LLVMEnumeration["LLVMUnnamedAddr", "LLVMLocalUnnamedAddr"] = 1;

LLVMEnumeration["LLVMUnnamedAddr", "LLVMGlobalUnnamedAddr"] = 2;

LLVMEnumeration["LLVMValueKind", "LLVMArgumentValueKind"] = 0;

LLVMEnumeration["LLVMValueKind", "LLVMBasicBlockValueKind"] = 1;

LLVMEnumeration["LLVMValueKind", "LLVMMemoryUseValueKind"] = 2;

LLVMEnumeration["LLVMValueKind", "LLVMMemoryDefValueKind"] = 3;

LLVMEnumeration["LLVMValueKind", "LLVMMemoryPhiValueKind"] = 4;

LLVMEnumeration["LLVMValueKind", "LLVMFunctionValueKind"] = 5;

LLVMEnumeration["LLVMValueKind", "LLVMGlobalAliasValueKind"] = 6;

LLVMEnumeration["LLVMValueKind", "LLVMGlobalIFuncValueKind"] = 7;

LLVMEnumeration["LLVMValueKind", "LLVMGlobalVariableValueKind"] = 8;

LLVMEnumeration["LLVMValueKind", "LLVMBlockAddressValueKind"] = 9;

LLVMEnumeration["LLVMValueKind", "LLVMConstantExprValueKind"] = 10;

LLVMEnumeration["LLVMValueKind", "LLVMConstantArrayValueKind"] = 11;

LLVMEnumeration["LLVMValueKind", "LLVMConstantStructValueKind"] = 12;

LLVMEnumeration["LLVMValueKind", "LLVMConstantVectorValueKind"] = 13;

LLVMEnumeration["LLVMValueKind", "LLVMUndefValueValueKind"] = 14;

LLVMEnumeration["LLVMValueKind", "LLVMConstantAggregateZeroValueKind"] = 15;

LLVMEnumeration["LLVMValueKind", "LLVMConstantDataArrayValueKind"] = 16;

LLVMEnumeration["LLVMValueKind", "LLVMConstantDataVectorValueKind"] = 17;

LLVMEnumeration["LLVMValueKind", "LLVMConstantIntValueKind"] = 18;

LLVMEnumeration["LLVMValueKind", "LLVMConstantFPValueKind"] = 19;

LLVMEnumeration["LLVMValueKind", "LLVMConstantPointerNullValueKind"] = 20;

LLVMEnumeration["LLVMValueKind", "LLVMConstantTokenNoneValueKind"] = 21;

LLVMEnumeration["LLVMValueKind", "LLVMMetadataAsValueValueKind"] = 22;

LLVMEnumeration["LLVMValueKind", "LLVMInlineAsmValueKind"] = 23;

LLVMEnumeration["LLVMValueKind", "LLVMInstructionValueKind"] = 24;

LLVMEnumeration["LLVMVisibility", "LLVMDefaultVisibility"] = 0;

LLVMEnumeration["LLVMVisibility", "LLVMHiddenVisibility"] = 1;

LLVMEnumeration["LLVMVisibility", "LLVMProtectedVisibility"] = 2;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagZero"] = 0;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagPrivate"] = 1;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagProtected"] = 2;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagPublic"] = 3;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagFwdDecl"] = 4;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagAppleBlock"] = 8;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagBlockByrefStruct"] = 16;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagVirtual"] = 32;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagArtificial"] = 64;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagExplicit"] = 128;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagPrototyped"] = 256;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagObjcClassComplete"] = 512;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagObjectPointer"] = 1024;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagVector"] = 2048;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagStaticMember"] = 4096;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagLValueReference"] = 8192;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagRValueReference"] = 16384;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagReserved"] = 32768;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagSingleInheritance"] = 65536;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagMultipleInheritance"] = 131072;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagVirtualInheritance"] = 196608;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagIntroducedVirtual"] = 262144;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagBitField"] = 524288;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagNoReturn"] = 1048576;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagMainSubprogram"] = 2097152;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagTypePassByValue"] = 4194304;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagTypePassByReference"] = 8388608;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagFixedEnum"] = 16777216;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagThunk"] = 33554432;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagTrivial"] = 67108864;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagIndirectVirtualBase"] = 36;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagAccessibility"] = 3;

LLVMEnumeration["LLVMDIFlags", "LLVMDIFlagPtrToMemberRep"] = 196608;

LLVMEnumeration["LLVMDWARFEmissionKind", "LLVMDWARFEmissionNone"] = 0;

LLVMEnumeration["LLVMDWARFEmissionKind", "LLVMDWARFEmissionFull"] = 1;

LLVMEnumeration["LLVMDWARFEmissionKind", "LLVMDWARFEmissionLineTablesOnly"] = 2;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC89"] = 0;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC"] = 1;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageAda83"] = 2;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC_plus_plus"] = 3;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageCobol74"] = 4;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageCobol85"] = 5;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageFortran77"] = 6;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageFortran90"] = 7;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguagePascal83"] = 8;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageModula2"] = 9;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageJava"] = 10;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC99"] = 11;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageAda95"] = 12;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageFortran95"] = 13;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguagePLI"] = 14;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageObjC"] = 15;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageObjC_plus_plus"] = 16;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageUPC"] = 17;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageD"] = 18;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguagePython"] = 19;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageOpenCL"] = 20;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageGo"] = 21;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageModula3"] = 22;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageHaskell"] = 23;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC_plus_plus_03"] = 24;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC_plus_plus_11"] = 25;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageOCaml"] = 26;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageRust"] = 27;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC11"] = 28;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageSwift"] = 29;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageJulia"] = 30;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageDylan"] = 31;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageC_plus_plus_14"] = 32;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageFortran03"] = 33;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageFortran08"] = 34;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageRenderScript"] = 35;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageBLISS"] = 36;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageMips_Assembler"] = 37;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageGOOGLE_RenderScript"] = 38;

LLVMEnumeration["LLVMDWARFSourceLanguage", "LLVMDWARFSourceLanguageBORLAND_Delphi"] = 39;

LLVMEnumeration["LLVMLinkerMode", "LLVMLinkerDestroySource"] = 0;

LLVMEnumeration["LLVMLinkerMode", "LLVMLinkerPreserveSource_Removed"] = 1;

LLVMEnumeration["LLVMOrcErrorCode", "LLVMOrcErrSuccess"] = 0;

LLVMEnumeration["LLVMOrcErrorCode", "LLVMOrcErrGeneric"] = 1;

LLVMEnumeration["LLVMByteOrdering", "LLVMBigEndian"] = 0;

LLVMEnumeration["LLVMByteOrdering", "LLVMLittleEndian"] = 1;

LLVMEnumeration["LLVMCodeGenFileType", "LLVMAssemblyFile"] = 0;

LLVMEnumeration["LLVMCodeGenFileType", "LLVMObjectFile"] = 1;

LLVMEnumeration["LLVMCodeGenOptLevel", "LLVMCodeGenLevelNone"] = 0;

LLVMEnumeration["LLVMCodeGenOptLevel", "LLVMCodeGenLevelLess"] = 1;

LLVMEnumeration["LLVMCodeGenOptLevel", "LLVMCodeGenLevelDefault"] = 2;

LLVMEnumeration["LLVMCodeGenOptLevel", "LLVMCodeGenLevelAggressive"] = 3;

LLVMEnumeration["LLVMCodeModel", "LLVMCodeModelDefault"] = 0;

LLVMEnumeration["LLVMCodeModel", "LLVMCodeModelJITDefault"] = 1;

LLVMEnumeration["LLVMCodeModel", "LLVMCodeModelSmall"] = 2;

LLVMEnumeration["LLVMCodeModel", "LLVMCodeModelKernel"] = 3;

LLVMEnumeration["LLVMCodeModel", "LLVMCodeModelMedium"] = 4;

LLVMEnumeration["LLVMCodeModel", "LLVMCodeModelLarge"] = 5;

LLVMEnumeration["LLVMRelocMode", "LLVMRelocDefault"] = 0;

LLVMEnumeration["LLVMRelocMode", "LLVMRelocStatic"] = 1;

LLVMEnumeration["LLVMRelocMode", "LLVMRelocPIC"] = 2;

LLVMEnumeration["LLVMRelocMode", "LLVMRelocDynamicNoPic"] = 3;



LLVMLibraryFunction["LLVMVerifyFunction"] :=
LLVMLibraryFunction["LLVMVerifyFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMVerifyFunction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMVerifierFailureAction -> enum LLVMVerifierFailureAction] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMVerifyModule"] :=
LLVMLibraryFunction["LLVMVerifyModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMVerifyModule_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMVerifierFailureAction -> enum LLVMVerifierFailureAction] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMViewFunctionCFG"] :=
LLVMLibraryFunction["LLVMViewFunctionCFG"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMViewFunctionCFG_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMViewFunctionCFGOnly"] :=
LLVMLibraryFunction["LLVMViewFunctionCFGOnly"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMViewFunctionCFGOnly_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetBitcodeModule"] :=
LLVMLibraryFunction["LLVMGetBitcodeModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBitcodeModule_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetBitcodeModule2"] :=
LLVMLibraryFunction["LLVMGetBitcodeModule2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBitcodeModule2_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetBitcodeModuleInContext"] :=
LLVMLibraryFunction["LLVMGetBitcodeModuleInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBitcodeModuleInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetBitcodeModuleInContext2"] :=
LLVMLibraryFunction["LLVMGetBitcodeModuleInContext2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBitcodeModuleInContext2_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMParseBitcode"] :=
LLVMLibraryFunction["LLVMParseBitcode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMParseBitcode_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMParseBitcode2"] :=
LLVMLibraryFunction["LLVMParseBitcode2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMParseBitcode2_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMParseBitcodeInContext"] :=
LLVMLibraryFunction["LLVMParseBitcodeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMParseBitcodeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMParseBitcodeInContext2"] :=
LLVMLibraryFunction["LLVMParseBitcodeInContext2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMParseBitcodeInContext2_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMWriteBitcodeToFD"] :=
LLVMLibraryFunction["LLVMWriteBitcodeToFD"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMWriteBitcodeToFD_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[int] *)
		Integer,
		(* Type[int] *)
		Integer,
		(* Type[int] *)
		Integer
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMWriteBitcodeToFile"] :=
LLVMLibraryFunction["LLVMWriteBitcodeToFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMWriteBitcodeToFile_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMWriteBitcodeToFileHandle"] :=
LLVMLibraryFunction["LLVMWriteBitcodeToFileHandle"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMWriteBitcodeToFileHandle_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[int] *)
		Integer
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMWriteBitcodeToMemoryBuffer"] :=
LLVMLibraryFunction["LLVMWriteBitcodeToMemoryBuffer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMWriteBitcodeToMemoryBuffer_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetComdat"] :=
LLVMLibraryFunction["LLVMGetComdat"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetComdat_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMComdatRef -> struct LLVMComdat *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetComdatSelectionKind"] :=
LLVMLibraryFunction["LLVMGetComdatSelectionKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetComdatSelectionKind_Wrapper",
	{
		(* Type[LLVMComdatRef -> struct LLVMComdat *] *)
		Integer
	},
	(* Type[LLVMComdatSelectionKind -> enum LLVMComdatSelectionKind] *)
	Integer
])

LLVMLibraryFunction["LLVMGetOrInsertComdat"] :=
LLVMLibraryFunction["LLVMGetOrInsertComdat"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetOrInsertComdat_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMComdatRef -> struct LLVMComdat *] *)
	Integer
])

LLVMLibraryFunction["LLVMSetComdat"] :=
LLVMLibraryFunction["LLVMSetComdat"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetComdat_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMComdatRef -> struct LLVMComdat *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetComdatSelectionKind"] :=
LLVMLibraryFunction["LLVMSetComdatSelectionKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetComdatSelectionKind_Wrapper",
	{
		(* Type[LLVMComdatRef -> struct LLVMComdat *] *)
		Integer,
		(* Type[LLVMComdatSelectionKind -> enum LLVMComdatSelectionKind] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddAlias"] :=
LLVMLibraryFunction["LLVMAddAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAlias_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMAddAttributeAtIndex"] :=
LLVMLibraryFunction["LLVMAddAttributeAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAttributeAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddCallSiteAttribute"] :=
LLVMLibraryFunction["LLVMAddCallSiteAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddCallSiteAttribute_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddCase"] :=
LLVMLibraryFunction["LLVMAddCase"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddCase_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddClause"] :=
LLVMLibraryFunction["LLVMAddClause"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddClause_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddDestination"] :=
LLVMLibraryFunction["LLVMAddDestination"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddDestination_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddFunction"] :=
LLVMLibraryFunction["LLVMAddFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddFunction_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMAddGlobal"] :=
LLVMLibraryFunction["LLVMAddGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddGlobal_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMAddGlobalInAddressSpace"] :=
LLVMLibraryFunction["LLVMAddGlobalInAddressSpace"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddGlobalInAddressSpace_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMAddHandler"] :=
LLVMLibraryFunction["LLVMAddHandler"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddHandler_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddIncoming"] :=
LLVMLibraryFunction["LLVMAddIncoming"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddIncoming_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[LLVMBasicBlockRef * -> struct LLVMOpaqueBasicBlock * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddModuleFlag"] :=
LLVMLibraryFunction["LLVMAddModuleFlag"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddModuleFlag_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMModuleFlagBehavior -> enum LLVMModuleFlagBehavior] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddNamedMetadataOperand"] :=
LLVMLibraryFunction["LLVMAddNamedMetadataOperand"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddNamedMetadataOperand_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddTargetDependentFunctionAttr"] :=
LLVMLibraryFunction["LLVMAddTargetDependentFunctionAttr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddTargetDependentFunctionAttr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAliasGetAliasee"] :=
LLVMLibraryFunction["LLVMAliasGetAliasee"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAliasGetAliasee_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMAliasSetAliasee"] :=
LLVMLibraryFunction["LLVMAliasSetAliasee"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAliasSetAliasee_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAlignOf"] :=
LLVMLibraryFunction["LLVMAlignOf"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAlignOf_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMAppendBasicBlock"] :=
LLVMLibraryFunction["LLVMAppendBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAppendBasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMAppendBasicBlockInContext"] :=
LLVMLibraryFunction["LLVMAppendBasicBlockInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAppendBasicBlockInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMAppendModuleInlineAsm"] :=
LLVMLibraryFunction["LLVMAppendModuleInlineAsm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAppendModuleInlineAsm_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMArrayType"] :=
LLVMLibraryFunction["LLVMArrayType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMArrayType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMBasicBlockAsValue"] :=
LLVMLibraryFunction["LLVMBasicBlockAsValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBasicBlockAsValue_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBlockAddress"] :=
LLVMLibraryFunction["LLVMBlockAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBlockAddress_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAdd"] :=
LLVMLibraryFunction["LLVMBuildAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAdd_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAddrSpaceCast"] :=
LLVMLibraryFunction["LLVMBuildAddrSpaceCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAddrSpaceCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAggregateRet"] :=
LLVMLibraryFunction["LLVMBuildAggregateRet"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAggregateRet_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAlloca"] :=
LLVMLibraryFunction["LLVMBuildAlloca"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAlloca_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAnd"] :=
LLVMLibraryFunction["LLVMBuildAnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAnd_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildArrayAlloca"] :=
LLVMLibraryFunction["LLVMBuildArrayAlloca"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildArrayAlloca_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildArrayMalloc"] :=
LLVMLibraryFunction["LLVMBuildArrayMalloc"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildArrayMalloc_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAShr"] :=
LLVMLibraryFunction["LLVMBuildAShr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAShr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAtomicCmpXchg"] :=
LLVMLibraryFunction["LLVMBuildAtomicCmpXchg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAtomicCmpXchg_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildAtomicRMW"] :=
LLVMLibraryFunction["LLVMBuildAtomicRMW"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildAtomicRMW_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMAtomicRMWBinOp -> enum LLVMAtomicRMWBinOp] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildBinOp"] :=
LLVMLibraryFunction["LLVMBuildBinOp"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildBinOp_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMOpcode -> enum LLVMOpcode] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildBitCast"] :=
LLVMLibraryFunction["LLVMBuildBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildBitCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildBr"] :=
LLVMLibraryFunction["LLVMBuildBr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildBr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCall"] :=
LLVMLibraryFunction["LLVMBuildCall"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCall_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCast"] :=
LLVMLibraryFunction["LLVMBuildCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMOpcode -> enum LLVMOpcode] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCatchPad"] :=
LLVMLibraryFunction["LLVMBuildCatchPad"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCatchPad_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCatchRet"] :=
LLVMLibraryFunction["LLVMBuildCatchRet"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCatchRet_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCatchSwitch"] :=
LLVMLibraryFunction["LLVMBuildCatchSwitch"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCatchSwitch_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCleanupPad"] :=
LLVMLibraryFunction["LLVMBuildCleanupPad"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCleanupPad_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCleanupRet"] :=
LLVMLibraryFunction["LLVMBuildCleanupRet"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCleanupRet_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildCondBr"] :=
LLVMLibraryFunction["LLVMBuildCondBr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildCondBr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildExactSDiv"] :=
LLVMLibraryFunction["LLVMBuildExactSDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildExactSDiv_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildExactUDiv"] :=
LLVMLibraryFunction["LLVMBuildExactUDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildExactUDiv_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildExtractElement"] :=
LLVMLibraryFunction["LLVMBuildExtractElement"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildExtractElement_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildExtractValue"] :=
LLVMLibraryFunction["LLVMBuildExtractValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildExtractValue_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFAdd"] :=
LLVMLibraryFunction["LLVMBuildFAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFAdd_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFCmp"] :=
LLVMLibraryFunction["LLVMBuildFCmp"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFCmp_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMRealPredicate -> enum LLVMRealPredicate] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFDiv"] :=
LLVMLibraryFunction["LLVMBuildFDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFDiv_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFence"] :=
LLVMLibraryFunction["LLVMBuildFence"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFence_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFMul"] :=
LLVMLibraryFunction["LLVMBuildFMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFMul_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFNeg"] :=
LLVMLibraryFunction["LLVMBuildFNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFNeg_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFPCast"] :=
LLVMLibraryFunction["LLVMBuildFPCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFPCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFPExt"] :=
LLVMLibraryFunction["LLVMBuildFPExt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFPExt_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFPToSI"] :=
LLVMLibraryFunction["LLVMBuildFPToSI"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFPToSI_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFPToUI"] :=
LLVMLibraryFunction["LLVMBuildFPToUI"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFPToUI_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFPTrunc"] :=
LLVMLibraryFunction["LLVMBuildFPTrunc"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFPTrunc_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFree"] :=
LLVMLibraryFunction["LLVMBuildFree"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFree_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFRem"] :=
LLVMLibraryFunction["LLVMBuildFRem"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFRem_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildFSub"] :=
LLVMLibraryFunction["LLVMBuildFSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildFSub_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildGEP"] :=
LLVMLibraryFunction["LLVMBuildGEP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildGEP_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildGlobalString"] :=
LLVMLibraryFunction["LLVMBuildGlobalString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildGlobalString_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildGlobalStringPtr"] :=
LLVMLibraryFunction["LLVMBuildGlobalStringPtr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildGlobalStringPtr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildICmp"] :=
LLVMLibraryFunction["LLVMBuildICmp"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildICmp_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMIntPredicate -> enum LLVMIntPredicate] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildInBoundsGEP"] :=
LLVMLibraryFunction["LLVMBuildInBoundsGEP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildInBoundsGEP_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildIndirectBr"] :=
LLVMLibraryFunction["LLVMBuildIndirectBr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildIndirectBr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildInsertElement"] :=
LLVMLibraryFunction["LLVMBuildInsertElement"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildInsertElement_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildInsertValue"] :=
LLVMLibraryFunction["LLVMBuildInsertValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildInsertValue_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildIntCast"] :=
LLVMLibraryFunction["LLVMBuildIntCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildIntCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildIntToPtr"] :=
LLVMLibraryFunction["LLVMBuildIntToPtr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildIntToPtr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildInvoke"] :=
LLVMLibraryFunction["LLVMBuildInvoke"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildInvoke_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildIsNotNull"] :=
LLVMLibraryFunction["LLVMBuildIsNotNull"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildIsNotNull_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildIsNull"] :=
LLVMLibraryFunction["LLVMBuildIsNull"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildIsNull_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildLandingPad"] :=
LLVMLibraryFunction["LLVMBuildLandingPad"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildLandingPad_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildLoad"] :=
LLVMLibraryFunction["LLVMBuildLoad"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildLoad_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildLShr"] :=
LLVMLibraryFunction["LLVMBuildLShr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildLShr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildMalloc"] :=
LLVMLibraryFunction["LLVMBuildMalloc"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildMalloc_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildMul"] :=
LLVMLibraryFunction["LLVMBuildMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildMul_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNeg"] :=
LLVMLibraryFunction["LLVMBuildNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNeg_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNot"] :=
LLVMLibraryFunction["LLVMBuildNot"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNot_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNSWAdd"] :=
LLVMLibraryFunction["LLVMBuildNSWAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNSWAdd_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNSWMul"] :=
LLVMLibraryFunction["LLVMBuildNSWMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNSWMul_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNSWNeg"] :=
LLVMLibraryFunction["LLVMBuildNSWNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNSWNeg_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNSWSub"] :=
LLVMLibraryFunction["LLVMBuildNSWSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNSWSub_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNUWAdd"] :=
LLVMLibraryFunction["LLVMBuildNUWAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNUWAdd_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNUWMul"] :=
LLVMLibraryFunction["LLVMBuildNUWMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNUWMul_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNUWNeg"] :=
LLVMLibraryFunction["LLVMBuildNUWNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNUWNeg_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildNUWSub"] :=
LLVMLibraryFunction["LLVMBuildNUWSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildNUWSub_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildOr"] :=
LLVMLibraryFunction["LLVMBuildOr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildOr_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildPhi"] :=
LLVMLibraryFunction["LLVMBuildPhi"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildPhi_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildPointerCast"] :=
LLVMLibraryFunction["LLVMBuildPointerCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildPointerCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildPtrDiff"] :=
LLVMLibraryFunction["LLVMBuildPtrDiff"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildPtrDiff_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildPtrToInt"] :=
LLVMLibraryFunction["LLVMBuildPtrToInt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildPtrToInt_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildResume"] :=
LLVMLibraryFunction["LLVMBuildResume"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildResume_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildRet"] :=
LLVMLibraryFunction["LLVMBuildRet"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildRet_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildRetVoid"] :=
LLVMLibraryFunction["LLVMBuildRetVoid"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildRetVoid_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSDiv"] :=
LLVMLibraryFunction["LLVMBuildSDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSDiv_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSelect"] :=
LLVMLibraryFunction["LLVMBuildSelect"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSelect_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSExt"] :=
LLVMLibraryFunction["LLVMBuildSExt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSExt_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSExtOrBitCast"] :=
LLVMLibraryFunction["LLVMBuildSExtOrBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSExtOrBitCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildShl"] :=
LLVMLibraryFunction["LLVMBuildShl"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildShl_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildShuffleVector"] :=
LLVMLibraryFunction["LLVMBuildShuffleVector"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildShuffleVector_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSIToFP"] :=
LLVMLibraryFunction["LLVMBuildSIToFP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSIToFP_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSRem"] :=
LLVMLibraryFunction["LLVMBuildSRem"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSRem_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildStore"] :=
LLVMLibraryFunction["LLVMBuildStore"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildStore_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildStructGEP"] :=
LLVMLibraryFunction["LLVMBuildStructGEP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildStructGEP_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSub"] :=
LLVMLibraryFunction["LLVMBuildSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSub_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildSwitch"] :=
LLVMLibraryFunction["LLVMBuildSwitch"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildSwitch_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildTrunc"] :=
LLVMLibraryFunction["LLVMBuildTrunc"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildTrunc_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildTruncOrBitCast"] :=
LLVMLibraryFunction["LLVMBuildTruncOrBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildTruncOrBitCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildUDiv"] :=
LLVMLibraryFunction["LLVMBuildUDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildUDiv_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildUIToFP"] :=
LLVMLibraryFunction["LLVMBuildUIToFP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildUIToFP_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildUnreachable"] :=
LLVMLibraryFunction["LLVMBuildUnreachable"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildUnreachable_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildURem"] :=
LLVMLibraryFunction["LLVMBuildURem"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildURem_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildVAArg"] :=
LLVMLibraryFunction["LLVMBuildVAArg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildVAArg_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildXor"] :=
LLVMLibraryFunction["LLVMBuildXor"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildXor_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildZExt"] :=
LLVMLibraryFunction["LLVMBuildZExt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildZExt_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMBuildZExtOrBitCast"] :=
LLVMLibraryFunction["LLVMBuildZExtOrBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMBuildZExtOrBitCast_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMClearInsertionPosition"] :=
LLVMLibraryFunction["LLVMClearInsertionPosition"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMClearInsertionPosition_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMCloneModule"] :=
LLVMLibraryFunction["LLVMCloneModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCloneModule_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstAdd"] :=
LLVMLibraryFunction["LLVMConstAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstAdd_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstAddrSpaceCast"] :=
LLVMLibraryFunction["LLVMConstAddrSpaceCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstAddrSpaceCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstAllOnes"] :=
LLVMLibraryFunction["LLVMConstAllOnes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstAllOnes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstAnd"] :=
LLVMLibraryFunction["LLVMConstAnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstAnd_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstArray"] :=
LLVMLibraryFunction["LLVMConstArray"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstArray_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstAShr"] :=
LLVMLibraryFunction["LLVMConstAShr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstAShr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstBitCast"] :=
LLVMLibraryFunction["LLVMConstBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstBitCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstExactSDiv"] :=
LLVMLibraryFunction["LLVMConstExactSDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstExactSDiv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstExactUDiv"] :=
LLVMLibraryFunction["LLVMConstExactUDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstExactUDiv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstExtractElement"] :=
LLVMLibraryFunction["LLVMConstExtractElement"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstExtractElement_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstExtractValue"] :=
LLVMLibraryFunction["LLVMConstExtractValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstExtractValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFAdd"] :=
LLVMLibraryFunction["LLVMConstFAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFAdd_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFCmp"] :=
LLVMLibraryFunction["LLVMConstFCmp"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFCmp_Wrapper",
	{
		(* Type[LLVMRealPredicate -> enum LLVMRealPredicate] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFDiv"] :=
LLVMLibraryFunction["LLVMConstFDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFDiv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFMul"] :=
LLVMLibraryFunction["LLVMConstFMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFMul_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFNeg"] :=
LLVMLibraryFunction["LLVMConstFNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFNeg_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFPCast"] :=
LLVMLibraryFunction["LLVMConstFPCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFPCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFPExt"] :=
LLVMLibraryFunction["LLVMConstFPExt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFPExt_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFPToSI"] :=
LLVMLibraryFunction["LLVMConstFPToSI"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFPToSI_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFPToUI"] :=
LLVMLibraryFunction["LLVMConstFPToUI"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFPToUI_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFPTrunc"] :=
LLVMLibraryFunction["LLVMConstFPTrunc"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFPTrunc_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFRem"] :=
LLVMLibraryFunction["LLVMConstFRem"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFRem_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstFSub"] :=
LLVMLibraryFunction["LLVMConstFSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstFSub_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstGEP"] :=
LLVMLibraryFunction["LLVMConstGEP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstGEP_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstICmp"] :=
LLVMLibraryFunction["LLVMConstICmp"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstICmp_Wrapper",
	{
		(* Type[LLVMIntPredicate -> enum LLVMIntPredicate] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstInBoundsGEP"] :=
LLVMLibraryFunction["LLVMConstInBoundsGEP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstInBoundsGEP_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstInlineAsm"] :=
LLVMLibraryFunction["LLVMConstInlineAsm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstInlineAsm_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstInsertElement"] :=
LLVMLibraryFunction["LLVMConstInsertElement"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstInsertElement_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstInsertValue"] :=
LLVMLibraryFunction["LLVMConstInsertValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstInsertValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstInt"] :=
LLVMLibraryFunction["LLVMConstInt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstInt_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned long long] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntCast"] :=
LLVMLibraryFunction["LLVMConstIntCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntGetSExtValue"] :=
LLVMLibraryFunction["LLVMConstIntGetSExtValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntGetSExtValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[long long] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntGetZExtValue"] :=
LLVMLibraryFunction["LLVMConstIntGetZExtValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntGetZExtValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned long long] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntOfArbitraryPrecision"] :=
LLVMLibraryFunction["LLVMConstIntOfArbitraryPrecision"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntOfArbitraryPrecision_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const uint64_t *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntOfString"] :=
LLVMLibraryFunction["LLVMConstIntOfString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntOfString_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[uint8_t] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntOfStringAndSize"] :=
LLVMLibraryFunction["LLVMConstIntOfStringAndSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntOfStringAndSize_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint8_t] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstIntToPtr"] :=
LLVMLibraryFunction["LLVMConstIntToPtr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstIntToPtr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstLShr"] :=
LLVMLibraryFunction["LLVMConstLShr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstLShr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstMul"] :=
LLVMLibraryFunction["LLVMConstMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstMul_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNamedStruct"] :=
LLVMLibraryFunction["LLVMConstNamedStruct"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNamedStruct_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNeg"] :=
LLVMLibraryFunction["LLVMConstNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNeg_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNot"] :=
LLVMLibraryFunction["LLVMConstNot"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNot_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNSWAdd"] :=
LLVMLibraryFunction["LLVMConstNSWAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNSWAdd_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNSWMul"] :=
LLVMLibraryFunction["LLVMConstNSWMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNSWMul_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNSWNeg"] :=
LLVMLibraryFunction["LLVMConstNSWNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNSWNeg_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNSWSub"] :=
LLVMLibraryFunction["LLVMConstNSWSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNSWSub_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNull"] :=
LLVMLibraryFunction["LLVMConstNull"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNull_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNUWAdd"] :=
LLVMLibraryFunction["LLVMConstNUWAdd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNUWAdd_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNUWMul"] :=
LLVMLibraryFunction["LLVMConstNUWMul"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNUWMul_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNUWNeg"] :=
LLVMLibraryFunction["LLVMConstNUWNeg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNUWNeg_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstNUWSub"] :=
LLVMLibraryFunction["LLVMConstNUWSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstNUWSub_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstOr"] :=
LLVMLibraryFunction["LLVMConstOr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstOr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstPointerCast"] :=
LLVMLibraryFunction["LLVMConstPointerCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstPointerCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstPointerNull"] :=
LLVMLibraryFunction["LLVMConstPointerNull"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstPointerNull_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstPtrToInt"] :=
LLVMLibraryFunction["LLVMConstPtrToInt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstPtrToInt_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstReal"] :=
LLVMLibraryFunction["LLVMConstReal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstReal_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[double] *)
		Real
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstRealGetDouble"] :=
LLVMLibraryFunction["LLVMConstRealGetDouble"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstRealGetDouble_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool * -> int *] *)
		Integer
	},
	(* Type[double] *)
	Real
])

LLVMLibraryFunction["LLVMConstRealOfString"] :=
LLVMLibraryFunction["LLVMConstRealOfString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstRealOfString_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstRealOfStringAndSize"] :=
LLVMLibraryFunction["LLVMConstRealOfStringAndSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstRealOfStringAndSize_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSDiv"] :=
LLVMLibraryFunction["LLVMConstSDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSDiv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSelect"] :=
LLVMLibraryFunction["LLVMConstSelect"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSelect_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSExt"] :=
LLVMLibraryFunction["LLVMConstSExt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSExt_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSExtOrBitCast"] :=
LLVMLibraryFunction["LLVMConstSExtOrBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSExtOrBitCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstShl"] :=
LLVMLibraryFunction["LLVMConstShl"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstShl_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstShuffleVector"] :=
LLVMLibraryFunction["LLVMConstShuffleVector"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstShuffleVector_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSIToFP"] :=
LLVMLibraryFunction["LLVMConstSIToFP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSIToFP_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSRem"] :=
LLVMLibraryFunction["LLVMConstSRem"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSRem_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstString"] :=
LLVMLibraryFunction["LLVMConstString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstString_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstStringInContext"] :=
LLVMLibraryFunction["LLVMConstStringInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstStringInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstStruct"] :=
LLVMLibraryFunction["LLVMConstStruct"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstStruct_Wrapper",
	{
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstStructInContext"] :=
LLVMLibraryFunction["LLVMConstStructInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstStructInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstSub"] :=
LLVMLibraryFunction["LLVMConstSub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstSub_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstTrunc"] :=
LLVMLibraryFunction["LLVMConstTrunc"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstTrunc_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstTruncOrBitCast"] :=
LLVMLibraryFunction["LLVMConstTruncOrBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstTruncOrBitCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstUDiv"] :=
LLVMLibraryFunction["LLVMConstUDiv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstUDiv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstUIToFP"] :=
LLVMLibraryFunction["LLVMConstUIToFP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstUIToFP_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstURem"] :=
LLVMLibraryFunction["LLVMConstURem"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstURem_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstVector"] :=
LLVMLibraryFunction["LLVMConstVector"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstVector_Wrapper",
	{
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstXor"] :=
LLVMLibraryFunction["LLVMConstXor"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstXor_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstZExt"] :=
LLVMLibraryFunction["LLVMConstZExt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstZExt_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMConstZExtOrBitCast"] :=
LLVMLibraryFunction["LLVMConstZExtOrBitCast"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMConstZExtOrBitCast_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMContextCreate"] :=
LLVMLibraryFunction["LLVMContextCreate"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMContextCreate_Wrapper",
	{

	},
	(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
	Integer
])

LLVMLibraryFunction["LLVMContextDispose"] :=
LLVMLibraryFunction["LLVMContextDispose"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMContextDispose_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMContextGetDiagnosticContext"] :=
LLVMLibraryFunction["LLVMContextGetDiagnosticContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMContextGetDiagnosticContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[void *] *)
	Integer
])

LLVMLibraryFunction["LLVMContextGetDiagnosticHandler"] :=
LLVMLibraryFunction["LLVMContextGetDiagnosticHandler"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMContextGetDiagnosticHandler_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMDiagnosticHandler -> void ( * )(struct LLVMOpaqueDiagnosticInfo *, void * )] *)
	Integer
])

LLVMLibraryFunction["LLVMContextSetDiagnosticHandler"] :=
LLVMLibraryFunction["LLVMContextSetDiagnosticHandler"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMContextSetDiagnosticHandler_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMDiagnosticHandler -> void ( * )(struct LLVMOpaqueDiagnosticInfo *, void * )] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMContextSetYieldCallback"] :=
LLVMLibraryFunction["LLVMContextSetYieldCallback"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMContextSetYieldCallback_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMYieldCallback -> void ( * )(struct LLVMOpaqueContext *, void * )] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMCopyModuleFlagsMetadata"] :=
LLVMLibraryFunction["LLVMCopyModuleFlagsMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCopyModuleFlagsMetadata_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[LLVMModuleFlagEntry * -> LLVMOpaqueModuleFlagEntry *] *)
	Integer
])

LLVMLibraryFunction["LLVMCountBasicBlocks"] :=
LLVMLibraryFunction["LLVMCountBasicBlocks"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCountBasicBlocks_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMCountIncoming"] :=
LLVMLibraryFunction["LLVMCountIncoming"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCountIncoming_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMCountParams"] :=
LLVMLibraryFunction["LLVMCountParams"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCountParams_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMCountParamTypes"] :=
LLVMLibraryFunction["LLVMCountParamTypes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCountParamTypes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMCountStructElementTypes"] :=
LLVMLibraryFunction["LLVMCountStructElementTypes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCountStructElementTypes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateBuilder"] :=
LLVMLibraryFunction["LLVMCreateBuilder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateBuilder_Wrapper",
	{

	},
	(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateBuilderInContext"] :=
LLVMLibraryFunction["LLVMCreateBuilderInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateBuilderInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateEnumAttribute"] :=
LLVMLibraryFunction["LLVMCreateEnumAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateEnumAttribute_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer
	},
	(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateFunctionPassManager"] :=
LLVMLibraryFunction["LLVMCreateFunctionPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateFunctionPassManager_Wrapper",
	{
		(* Type[LLVMModuleProviderRef -> struct LLVMOpaqueModuleProvider *] *)
		Integer
	},
	(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateFunctionPassManagerForModule"] :=
LLVMLibraryFunction["LLVMCreateFunctionPassManagerForModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateFunctionPassManagerForModule_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateMemoryBufferWithContentsOfFile"] :=
LLVMLibraryFunction["LLVMCreateMemoryBufferWithContentsOfFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateMemoryBufferWithContentsOfFile_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMMemoryBufferRef * -> struct LLVMOpaqueMemoryBuffer * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateMemoryBufferWithMemoryRange"] :=
LLVMLibraryFunction["LLVMCreateMemoryBufferWithMemoryRange"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateMemoryBufferWithMemoryRange_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateMemoryBufferWithMemoryRangeCopy"] :=
LLVMLibraryFunction["LLVMCreateMemoryBufferWithMemoryRangeCopy"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateMemoryBufferWithMemoryRangeCopy_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateMemoryBufferWithSTDIN"] :=
LLVMLibraryFunction["LLVMCreateMemoryBufferWithSTDIN"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateMemoryBufferWithSTDIN_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef * -> struct LLVMOpaqueMemoryBuffer * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateMessage"] :=
LLVMLibraryFunction["LLVMCreateMessage"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateMessage_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMCreateModuleProviderForExistingModule"] :=
LLVMLibraryFunction["LLVMCreateModuleProviderForExistingModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateModuleProviderForExistingModule_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMModuleProviderRef -> struct LLVMOpaqueModuleProvider *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreatePassManager"] :=
LLVMLibraryFunction["LLVMCreatePassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreatePassManager_Wrapper",
	{

	},
	(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateStringAttribute"] :=
LLVMLibraryFunction["LLVMCreateStringAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateStringAttribute_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
	Integer
])

LLVMLibraryFunction["LLVMDeleteBasicBlock"] :=
LLVMLibraryFunction["LLVMDeleteBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDeleteBasicBlock_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDeleteFunction"] :=
LLVMLibraryFunction["LLVMDeleteFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDeleteFunction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDeleteGlobal"] :=
LLVMLibraryFunction["LLVMDeleteGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDeleteGlobal_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeBuilder"] :=
LLVMLibraryFunction["LLVMDisposeBuilder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeBuilder_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeMemoryBuffer"] :=
LLVMLibraryFunction["LLVMDisposeMemoryBuffer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeMemoryBuffer_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeMessage"] :=
LLVMLibraryFunction["LLVMDisposeMessage"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeMessage_Wrapper",
	{
		(* Type[char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeModule"] :=
LLVMLibraryFunction["LLVMDisposeModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeModule_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeModuleFlagsMetadata"] :=
LLVMLibraryFunction["LLVMDisposeModuleFlagsMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeModuleFlagsMetadata_Wrapper",
	{
		(* Type[LLVMModuleFlagEntry * -> LLVMOpaqueModuleFlagEntry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeModuleProvider"] :=
LLVMLibraryFunction["LLVMDisposeModuleProvider"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeModuleProvider_Wrapper",
	{
		(* Type[LLVMModuleProviderRef -> struct LLVMOpaqueModuleProvider *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposePassManager"] :=
LLVMLibraryFunction["LLVMDisposePassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposePassManager_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDoubleType"] :=
LLVMLibraryFunction["LLVMDoubleType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDoubleType_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMDoubleTypeInContext"] :=
LLVMLibraryFunction["LLVMDoubleTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDoubleTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMDumpModule"] :=
LLVMLibraryFunction["LLVMDumpModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDumpModule_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDumpType"] :=
LLVMLibraryFunction["LLVMDumpType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDumpType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDumpValue"] :=
LLVMLibraryFunction["LLVMDumpValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDumpValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMFinalizeFunctionPassManager"] :=
LLVMLibraryFunction["LLVMFinalizeFunctionPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFinalizeFunctionPassManager_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMFloatType"] :=
LLVMLibraryFunction["LLVMFloatType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFloatType_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMFloatTypeInContext"] :=
LLVMLibraryFunction["LLVMFloatTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFloatTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMFP128Type"] :=
LLVMLibraryFunction["LLVMFP128Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFP128Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMFP128TypeInContext"] :=
LLVMLibraryFunction["LLVMFP128TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFP128TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMFunctionType"] :=
LLVMLibraryFunction["LLVMFunctionType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFunctionType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetAlignment"] :=
LLVMLibraryFunction["LLVMGetAlignment"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetAlignment_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetAllocatedType"] :=
LLVMLibraryFunction["LLVMGetAllocatedType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetAllocatedType_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetArgOperand"] :=
LLVMLibraryFunction["LLVMGetArgOperand"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetArgOperand_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetArrayLength"] :=
LLVMLibraryFunction["LLVMGetArrayLength"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetArrayLength_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetAsString"] :=
LLVMLibraryFunction["LLVMGetAsString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetAsString_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetAttributeCountAtIndex"] :=
LLVMLibraryFunction["LLVMGetAttributeCountAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetAttributeCountAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetAttributesAtIndex"] :=
LLVMLibraryFunction["LLVMGetAttributesAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetAttributesAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[LLVMAttributeRef * -> struct LLVMOpaqueAttributeRef * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetBasicBlockName"] :=
LLVMLibraryFunction["LLVMGetBasicBlockName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBasicBlockName_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetBasicBlockParent"] :=
LLVMLibraryFunction["LLVMGetBasicBlockParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBasicBlockParent_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetBasicBlocks"] :=
LLVMLibraryFunction["LLVMGetBasicBlocks"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBasicBlocks_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef * -> struct LLVMOpaqueBasicBlock * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetBasicBlockTerminator"] :=
LLVMLibraryFunction["LLVMGetBasicBlockTerminator"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBasicBlockTerminator_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetBufferSize"] :=
LLVMLibraryFunction["LLVMGetBufferSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBufferSize_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer
	},
	(* Type[size_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetBufferStart"] :=
LLVMLibraryFunction["LLVMGetBufferStart"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetBufferStart_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetCalledValue"] :=
LLVMLibraryFunction["LLVMGetCalledValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCalledValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCallSiteAttributeCount"] :=
LLVMLibraryFunction["LLVMGetCallSiteAttributeCount"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCallSiteAttributeCount_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCallSiteAttributes"] :=
LLVMLibraryFunction["LLVMGetCallSiteAttributes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCallSiteAttributes_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[LLVMAttributeRef * -> struct LLVMOpaqueAttributeRef * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetCallSiteEnumAttribute"] :=
LLVMLibraryFunction["LLVMGetCallSiteEnumAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCallSiteEnumAttribute_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCallSiteStringAttribute"] :=
LLVMLibraryFunction["LLVMGetCallSiteStringAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCallSiteStringAttribute_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetClause"] :=
LLVMLibraryFunction["LLVMGetClause"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetClause_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCmpXchgFailureOrdering"] :=
LLVMLibraryFunction["LLVMGetCmpXchgFailureOrdering"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCmpXchgFailureOrdering_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCmpXchgSuccessOrdering"] :=
LLVMLibraryFunction["LLVMGetCmpXchgSuccessOrdering"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCmpXchgSuccessOrdering_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCondition"] :=
LLVMLibraryFunction["LLVMGetCondition"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCondition_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetConstOpcode"] :=
LLVMLibraryFunction["LLVMGetConstOpcode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetConstOpcode_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMOpcode -> enum LLVMOpcode] *)
	Integer
])

LLVMLibraryFunction["LLVMGetCurrentDebugLocation"] :=
LLVMLibraryFunction["LLVMGetCurrentDebugLocation"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetCurrentDebugLocation_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetDataLayout"] :=
LLVMLibraryFunction["LLVMGetDataLayout"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetDataLayout_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetDataLayoutStr"] :=
LLVMLibraryFunction["LLVMGetDataLayoutStr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetDataLayoutStr_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetDiagInfoDescription"] :=
LLVMLibraryFunction["LLVMGetDiagInfoDescription"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetDiagInfoDescription_Wrapper",
	{
		(* Type[LLVMDiagnosticInfoRef -> struct LLVMOpaqueDiagnosticInfo *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetDiagInfoSeverity"] :=
LLVMLibraryFunction["LLVMGetDiagInfoSeverity"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetDiagInfoSeverity_Wrapper",
	{
		(* Type[LLVMDiagnosticInfoRef -> struct LLVMOpaqueDiagnosticInfo *] *)
		Integer
	},
	(* Type[LLVMDiagnosticSeverity -> enum LLVMDiagnosticSeverity] *)
	Integer
])

LLVMLibraryFunction["LLVMGetDLLStorageClass"] :=
LLVMLibraryFunction["LLVMGetDLLStorageClass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetDLLStorageClass_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMDLLStorageClass -> enum LLVMDLLStorageClass] *)
	Integer
])

LLVMLibraryFunction["LLVMGetElementAsConstant"] :=
LLVMLibraryFunction["LLVMGetElementAsConstant"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetElementAsConstant_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetElementType"] :=
LLVMLibraryFunction["LLVMGetElementType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetElementType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetEntryBasicBlock"] :=
LLVMLibraryFunction["LLVMGetEntryBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetEntryBasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetEnumAttributeAtIndex"] :=
LLVMLibraryFunction["LLVMGetEnumAttributeAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetEnumAttributeAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetEnumAttributeKind"] :=
LLVMLibraryFunction["LLVMGetEnumAttributeKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetEnumAttributeKind_Wrapper",
	{
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetEnumAttributeKindForName"] :=
LLVMLibraryFunction["LLVMGetEnumAttributeKindForName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetEnumAttributeKindForName_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetEnumAttributeValue"] :=
LLVMLibraryFunction["LLVMGetEnumAttributeValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetEnumAttributeValue_Wrapper",
	{
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFCmpPredicate"] :=
LLVMLibraryFunction["LLVMGetFCmpPredicate"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFCmpPredicate_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMRealPredicate -> enum LLVMRealPredicate] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstBasicBlock"] :=
LLVMLibraryFunction["LLVMGetFirstBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstBasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstFunction"] :=
LLVMLibraryFunction["LLVMGetFirstFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstFunction_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstGlobal"] :=
LLVMLibraryFunction["LLVMGetFirstGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstGlobal_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstGlobalAlias"] :=
LLVMLibraryFunction["LLVMGetFirstGlobalAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstGlobalAlias_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstInstruction"] :=
LLVMLibraryFunction["LLVMGetFirstInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstInstruction_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstParam"] :=
LLVMLibraryFunction["LLVMGetFirstParam"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstParam_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFirstUse"] :=
LLVMLibraryFunction["LLVMGetFirstUse"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstUse_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMUseRef -> struct LLVMOpaqueUse *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFunctionCallConv"] :=
LLVMLibraryFunction["LLVMGetFunctionCallConv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFunctionCallConv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetGC"] :=
LLVMLibraryFunction["LLVMGetGC"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetGC_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetGlobalContext"] :=
LLVMLibraryFunction["LLVMGetGlobalContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetGlobalContext_Wrapper",
	{

	},
	(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetGlobalParent"] :=
LLVMLibraryFunction["LLVMGetGlobalParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetGlobalParent_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetGlobalPassRegistry"] :=
LLVMLibraryFunction["LLVMGetGlobalPassRegistry"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetGlobalPassRegistry_Wrapper",
	{

	},
	(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetHandlers"] :=
LLVMLibraryFunction["LLVMGetHandlers"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetHandlers_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef * -> struct LLVMOpaqueBasicBlock * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetICmpPredicate"] :=
LLVMLibraryFunction["LLVMGetICmpPredicate"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetICmpPredicate_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMIntPredicate -> enum LLVMIntPredicate] *)
	Integer
])

LLVMLibraryFunction["LLVMGetIncomingBlock"] :=
LLVMLibraryFunction["LLVMGetIncomingBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetIncomingBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetIncomingValue"] :=
LLVMLibraryFunction["LLVMGetIncomingValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetIncomingValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetIndices"] :=
LLVMLibraryFunction["LLVMGetIndices"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetIndices_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[const unsigned int *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetInitializer"] :=
LLVMLibraryFunction["LLVMGetInitializer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetInitializer_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetInlineAsm"] :=
LLVMLibraryFunction["LLVMGetInlineAsm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetInlineAsm_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMInlineAsmDialect -> enum LLVMInlineAsmDialect] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetInsertBlock"] :=
LLVMLibraryFunction["LLVMGetInsertBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetInsertBlock_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetInstructionCallConv"] :=
LLVMLibraryFunction["LLVMGetInstructionCallConv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetInstructionCallConv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetInstructionOpcode"] :=
LLVMLibraryFunction["LLVMGetInstructionOpcode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetInstructionOpcode_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMOpcode -> enum LLVMOpcode] *)
	Integer
])

LLVMLibraryFunction["LLVMGetInstructionParent"] :=
LLVMLibraryFunction["LLVMGetInstructionParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetInstructionParent_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetIntrinsicID"] :=
LLVMLibraryFunction["LLVMGetIntrinsicID"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetIntrinsicID_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetIntTypeWidth"] :=
LLVMLibraryFunction["LLVMGetIntTypeWidth"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetIntTypeWidth_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastBasicBlock"] :=
LLVMLibraryFunction["LLVMGetLastBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastBasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastEnumAttributeKind"] :=
LLVMLibraryFunction["LLVMGetLastEnumAttributeKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastEnumAttributeKind_Wrapper",
	{

	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastFunction"] :=
LLVMLibraryFunction["LLVMGetLastFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastFunction_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastGlobal"] :=
LLVMLibraryFunction["LLVMGetLastGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastGlobal_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastGlobalAlias"] :=
LLVMLibraryFunction["LLVMGetLastGlobalAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastGlobalAlias_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastInstruction"] :=
LLVMLibraryFunction["LLVMGetLastInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastInstruction_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLastParam"] :=
LLVMLibraryFunction["LLVMGetLastParam"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLastParam_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetLinkage"] :=
LLVMLibraryFunction["LLVMGetLinkage"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetLinkage_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMLinkage -> enum LLVMLinkage] *)
	Integer
])

LLVMLibraryFunction["LLVMGetMDKindID"] :=
LLVMLibraryFunction["LLVMGetMDKindID"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetMDKindID_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetMDKindIDInContext"] :=
LLVMLibraryFunction["LLVMGetMDKindIDInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetMDKindIDInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetMDNodeNumOperands"] :=
LLVMLibraryFunction["LLVMGetMDNodeNumOperands"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetMDNodeNumOperands_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetMDNodeOperands"] :=
LLVMLibraryFunction["LLVMGetMDNodeOperands"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetMDNodeOperands_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetMDString"] :=
LLVMLibraryFunction["LLVMGetMDString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetMDString_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetMetadata"] :=
LLVMLibraryFunction["LLVMGetMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetMetadata_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetModuleContext"] :=
LLVMLibraryFunction["LLVMGetModuleContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetModuleContext_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetModuleFlag"] :=
LLVMLibraryFunction["LLVMGetModuleFlag"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetModuleFlag_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetModuleIdentifier"] :=
LLVMLibraryFunction["LLVMGetModuleIdentifier"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetModuleIdentifier_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetModuleInlineAsm"] :=
LLVMLibraryFunction["LLVMGetModuleInlineAsm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetModuleInlineAsm_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetNamedFunction"] :=
LLVMLibraryFunction["LLVMGetNamedFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNamedFunction_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNamedGlobal"] :=
LLVMLibraryFunction["LLVMGetNamedGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNamedGlobal_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNamedGlobalAlias"] :=
LLVMLibraryFunction["LLVMGetNamedGlobalAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNamedGlobalAlias_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNamedMetadataNumOperands"] :=
LLVMLibraryFunction["LLVMGetNamedMetadataNumOperands"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNamedMetadataNumOperands_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNamedMetadataOperands"] :=
LLVMLibraryFunction["LLVMGetNamedMetadataOperands"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNamedMetadataOperands_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetNextBasicBlock"] :=
LLVMLibraryFunction["LLVMGetNextBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextBasicBlock_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNextFunction"] :=
LLVMLibraryFunction["LLVMGetNextFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextFunction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNextGlobal"] :=
LLVMLibraryFunction["LLVMGetNextGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextGlobal_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNextGlobalAlias"] :=
LLVMLibraryFunction["LLVMGetNextGlobalAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextGlobalAlias_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNextInstruction"] :=
LLVMLibraryFunction["LLVMGetNextInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextInstruction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNextParam"] :=
LLVMLibraryFunction["LLVMGetNextParam"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextParam_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNextUse"] :=
LLVMLibraryFunction["LLVMGetNextUse"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextUse_Wrapper",
	{
		(* Type[LLVMUseRef -> struct LLVMOpaqueUse *] *)
		Integer
	},
	(* Type[LLVMUseRef -> struct LLVMOpaqueUse *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNormalDest"] :=
LLVMLibraryFunction["LLVMGetNormalDest"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNormalDest_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumArgOperands"] :=
LLVMLibraryFunction["LLVMGetNumArgOperands"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumArgOperands_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumClauses"] :=
LLVMLibraryFunction["LLVMGetNumClauses"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumClauses_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumContainedTypes"] :=
LLVMLibraryFunction["LLVMGetNumContainedTypes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumContainedTypes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumHandlers"] :=
LLVMLibraryFunction["LLVMGetNumHandlers"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumHandlers_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumIndices"] :=
LLVMLibraryFunction["LLVMGetNumIndices"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumIndices_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumOperands"] :=
LLVMLibraryFunction["LLVMGetNumOperands"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumOperands_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetNumSuccessors"] :=
LLVMLibraryFunction["LLVMGetNumSuccessors"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNumSuccessors_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetOperand"] :=
LLVMLibraryFunction["LLVMGetOperand"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetOperand_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetOperandUse"] :=
LLVMLibraryFunction["LLVMGetOperandUse"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetOperandUse_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMUseRef -> struct LLVMOpaqueUse *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetOrdering"] :=
LLVMLibraryFunction["LLVMGetOrdering"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetOrdering_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
	Integer
])

LLVMLibraryFunction["LLVMGetParam"] :=
LLVMLibraryFunction["LLVMGetParam"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetParam_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetParamParent"] :=
LLVMLibraryFunction["LLVMGetParamParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetParamParent_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetParams"] :=
LLVMLibraryFunction["LLVMGetParams"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetParams_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetParamTypes"] :=
LLVMLibraryFunction["LLVMGetParamTypes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetParamTypes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetParentCatchSwitch"] :=
LLVMLibraryFunction["LLVMGetParentCatchSwitch"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetParentCatchSwitch_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPersonalityFn"] :=
LLVMLibraryFunction["LLVMGetPersonalityFn"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPersonalityFn_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPointerAddressSpace"] :=
LLVMLibraryFunction["LLVMGetPointerAddressSpace"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPointerAddressSpace_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPreviousBasicBlock"] :=
LLVMLibraryFunction["LLVMGetPreviousBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPreviousBasicBlock_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPreviousFunction"] :=
LLVMLibraryFunction["LLVMGetPreviousFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPreviousFunction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPreviousGlobal"] :=
LLVMLibraryFunction["LLVMGetPreviousGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPreviousGlobal_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPreviousGlobalAlias"] :=
LLVMLibraryFunction["LLVMGetPreviousGlobalAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPreviousGlobalAlias_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPreviousInstruction"] :=
LLVMLibraryFunction["LLVMGetPreviousInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPreviousInstruction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPreviousParam"] :=
LLVMLibraryFunction["LLVMGetPreviousParam"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPreviousParam_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetReturnType"] :=
LLVMLibraryFunction["LLVMGetReturnType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetReturnType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSection"] :=
LLVMLibraryFunction["LLVMGetSection"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSection_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetSourceFileName"] :=
LLVMLibraryFunction["LLVMGetSourceFileName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSourceFileName_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetStringAttributeAtIndex"] :=
LLVMLibraryFunction["LLVMGetStringAttributeAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetStringAttributeAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetStringAttributeKind"] :=
LLVMLibraryFunction["LLVMGetStringAttributeKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetStringAttributeKind_Wrapper",
	{
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer,
		(* Type[unsigned int *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetStringAttributeValue"] :=
LLVMLibraryFunction["LLVMGetStringAttributeValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetStringAttributeValue_Wrapper",
	{
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer,
		(* Type[unsigned int *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetStructElementTypes"] :=
LLVMLibraryFunction["LLVMGetStructElementTypes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetStructElementTypes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetStructName"] :=
LLVMLibraryFunction["LLVMGetStructName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetStructName_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetSubtypes"] :=
LLVMLibraryFunction["LLVMGetSubtypes"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSubtypes_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetSuccessor"] :=
LLVMLibraryFunction["LLVMGetSuccessor"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSuccessor_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSwitchDefaultDest"] :=
LLVMLibraryFunction["LLVMGetSwitchDefaultDest"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSwitchDefaultDest_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTarget"] :=
LLVMLibraryFunction["LLVMGetTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTarget_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetThreadLocalMode"] :=
LLVMLibraryFunction["LLVMGetThreadLocalMode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetThreadLocalMode_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMThreadLocalMode -> enum LLVMThreadLocalMode] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTypeByName"] :=
LLVMLibraryFunction["LLVMGetTypeByName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTypeByName_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTypeContext"] :=
LLVMLibraryFunction["LLVMGetTypeContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTypeContext_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTypeKind"] :=
LLVMLibraryFunction["LLVMGetTypeKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTypeKind_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMTypeKind -> enum LLVMTypeKind] *)
	Integer
])

LLVMLibraryFunction["LLVMGetUndef"] :=
LLVMLibraryFunction["LLVMGetUndef"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetUndef_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetUnnamedAddress"] :=
LLVMLibraryFunction["LLVMGetUnnamedAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetUnnamedAddress_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMUnnamedAddr -> enum LLVMUnnamedAddr] *)
	Integer
])

LLVMLibraryFunction["LLVMGetUnwindDest"] :=
LLVMLibraryFunction["LLVMGetUnwindDest"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetUnwindDest_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetUsedValue"] :=
LLVMLibraryFunction["LLVMGetUsedValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetUsedValue_Wrapper",
	{
		(* Type[LLVMUseRef -> struct LLVMOpaqueUse *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetUser"] :=
LLVMLibraryFunction["LLVMGetUser"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetUser_Wrapper",
	{
		(* Type[LLVMUseRef -> struct LLVMOpaqueUse *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetValueKind"] :=
LLVMLibraryFunction["LLVMGetValueKind"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetValueKind_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueKind -> enum LLVMValueKind] *)
	Integer
])

LLVMLibraryFunction["LLVMGetValueName"] :=
LLVMLibraryFunction["LLVMGetValueName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetValueName_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetValueName2"] :=
LLVMLibraryFunction["LLVMGetValueName2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetValueName2_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetVectorSize"] :=
LLVMLibraryFunction["LLVMGetVectorSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetVectorSize_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetVisibility"] :=
LLVMLibraryFunction["LLVMGetVisibility"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetVisibility_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMVisibility -> enum LLVMVisibility] *)
	Integer
])

LLVMLibraryFunction["LLVMGetVolatile"] :=
LLVMLibraryFunction["LLVMGetVolatile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetVolatile_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMHalfType"] :=
LLVMLibraryFunction["LLVMHalfType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMHalfType_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMHalfTypeInContext"] :=
LLVMLibraryFunction["LLVMHalfTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMHalfTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMHasMetadata"] :=
LLVMLibraryFunction["LLVMHasMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMHasMetadata_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMHasPersonalityFn"] :=
LLVMLibraryFunction["LLVMHasPersonalityFn"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMHasPersonalityFn_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMHasUnnamedAddr"] :=
LLVMLibraryFunction["LLVMHasUnnamedAddr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMHasUnnamedAddr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMInitializeCore"] :=
LLVMLibraryFunction["LLVMInitializeCore"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeCore_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeFunctionPassManager"] :=
LLVMLibraryFunction["LLVMInitializeFunctionPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeFunctionPassManager_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMInsertBasicBlock"] :=
LLVMLibraryFunction["LLVMInsertBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInsertBasicBlock_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMInsertBasicBlockInContext"] :=
LLVMLibraryFunction["LLVMInsertBasicBlockInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInsertBasicBlockInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMInsertIntoBuilder"] :=
LLVMLibraryFunction["LLVMInsertIntoBuilder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInsertIntoBuilder_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInsertIntoBuilderWithName"] :=
LLVMLibraryFunction["LLVMInsertIntoBuilderWithName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInsertIntoBuilderWithName_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInstructionClone"] :=
LLVMLibraryFunction["LLVMInstructionClone"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInstructionClone_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMInstructionEraseFromParent"] :=
LLVMLibraryFunction["LLVMInstructionEraseFromParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInstructionEraseFromParent_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInstructionRemoveFromParent"] :=
LLVMLibraryFunction["LLVMInstructionRemoveFromParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInstructionRemoveFromParent_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInt128Type"] :=
LLVMLibraryFunction["LLVMInt128Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt128Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt128TypeInContext"] :=
LLVMLibraryFunction["LLVMInt128TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt128TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt16Type"] :=
LLVMLibraryFunction["LLVMInt16Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt16Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt16TypeInContext"] :=
LLVMLibraryFunction["LLVMInt16TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt16TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt1Type"] :=
LLVMLibraryFunction["LLVMInt1Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt1Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt1TypeInContext"] :=
LLVMLibraryFunction["LLVMInt1TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt1TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt32Type"] :=
LLVMLibraryFunction["LLVMInt32Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt32Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt32TypeInContext"] :=
LLVMLibraryFunction["LLVMInt32TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt32TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt64Type"] :=
LLVMLibraryFunction["LLVMInt64Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt64Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt64TypeInContext"] :=
LLVMLibraryFunction["LLVMInt64TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt64TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt8Type"] :=
LLVMLibraryFunction["LLVMInt8Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt8Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMInt8TypeInContext"] :=
LLVMLibraryFunction["LLVMInt8TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInt8TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMIntType"] :=
LLVMLibraryFunction["LLVMIntType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIntType_Wrapper",
	{
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMIntTypeInContext"] :=
LLVMLibraryFunction["LLVMIntTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIntTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAAddrSpaceCastInst"] :=
LLVMLibraryFunction["LLVMIsAAddrSpaceCastInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAAddrSpaceCastInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAAllocaInst"] :=
LLVMLibraryFunction["LLVMIsAAllocaInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAAllocaInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAArgument"] :=
LLVMLibraryFunction["LLVMIsAArgument"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAArgument_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsABasicBlock"] :=
LLVMLibraryFunction["LLVMIsABasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsABasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsABinaryOperator"] :=
LLVMLibraryFunction["LLVMIsABinaryOperator"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsABinaryOperator_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsABitCastInst"] :=
LLVMLibraryFunction["LLVMIsABitCastInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsABitCastInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsABlockAddress"] :=
LLVMLibraryFunction["LLVMIsABlockAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsABlockAddress_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsABranchInst"] :=
LLVMLibraryFunction["LLVMIsABranchInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsABranchInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACallInst"] :=
LLVMLibraryFunction["LLVMIsACallInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACallInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACastInst"] :=
LLVMLibraryFunction["LLVMIsACastInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACastInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACatchPadInst"] :=
LLVMLibraryFunction["LLVMIsACatchPadInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACatchPadInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACatchReturnInst"] :=
LLVMLibraryFunction["LLVMIsACatchReturnInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACatchReturnInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACleanupPadInst"] :=
LLVMLibraryFunction["LLVMIsACleanupPadInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACleanupPadInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACleanupReturnInst"] :=
LLVMLibraryFunction["LLVMIsACleanupReturnInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACleanupReturnInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsACmpInst"] :=
LLVMLibraryFunction["LLVMIsACmpInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsACmpInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstant"] :=
LLVMLibraryFunction["LLVMIsAConstant"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstant_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantAggregateZero"] :=
LLVMLibraryFunction["LLVMIsAConstantAggregateZero"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantAggregateZero_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantArray"] :=
LLVMLibraryFunction["LLVMIsAConstantArray"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantArray_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantDataArray"] :=
LLVMLibraryFunction["LLVMIsAConstantDataArray"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantDataArray_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantDataSequential"] :=
LLVMLibraryFunction["LLVMIsAConstantDataSequential"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantDataSequential_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantDataVector"] :=
LLVMLibraryFunction["LLVMIsAConstantDataVector"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantDataVector_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantExpr"] :=
LLVMLibraryFunction["LLVMIsAConstantExpr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantExpr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantFP"] :=
LLVMLibraryFunction["LLVMIsAConstantFP"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantFP_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantInt"] :=
LLVMLibraryFunction["LLVMIsAConstantInt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantInt_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantPointerNull"] :=
LLVMLibraryFunction["LLVMIsAConstantPointerNull"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantPointerNull_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantStruct"] :=
LLVMLibraryFunction["LLVMIsAConstantStruct"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantStruct_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantTokenNone"] :=
LLVMLibraryFunction["LLVMIsAConstantTokenNone"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantTokenNone_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAConstantVector"] :=
LLVMLibraryFunction["LLVMIsAConstantVector"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAConstantVector_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsADbgDeclareInst"] :=
LLVMLibraryFunction["LLVMIsADbgDeclareInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsADbgDeclareInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsADbgInfoIntrinsic"] :=
LLVMLibraryFunction["LLVMIsADbgInfoIntrinsic"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsADbgInfoIntrinsic_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAExtractElementInst"] :=
LLVMLibraryFunction["LLVMIsAExtractElementInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAExtractElementInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAExtractValueInst"] :=
LLVMLibraryFunction["LLVMIsAExtractValueInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAExtractValueInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFCmpInst"] :=
LLVMLibraryFunction["LLVMIsAFCmpInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFCmpInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFPExtInst"] :=
LLVMLibraryFunction["LLVMIsAFPExtInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFPExtInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFPToSIInst"] :=
LLVMLibraryFunction["LLVMIsAFPToSIInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFPToSIInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFPToUIInst"] :=
LLVMLibraryFunction["LLVMIsAFPToUIInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFPToUIInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFPTruncInst"] :=
LLVMLibraryFunction["LLVMIsAFPTruncInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFPTruncInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFuncletPadInst"] :=
LLVMLibraryFunction["LLVMIsAFuncletPadInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFuncletPadInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAFunction"] :=
LLVMLibraryFunction["LLVMIsAFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAFunction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAGetElementPtrInst"] :=
LLVMLibraryFunction["LLVMIsAGetElementPtrInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAGetElementPtrInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAGlobalAlias"] :=
LLVMLibraryFunction["LLVMIsAGlobalAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAGlobalAlias_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAGlobalObject"] :=
LLVMLibraryFunction["LLVMIsAGlobalObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAGlobalObject_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAGlobalValue"] :=
LLVMLibraryFunction["LLVMIsAGlobalValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAGlobalValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAGlobalVariable"] :=
LLVMLibraryFunction["LLVMIsAGlobalVariable"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAGlobalVariable_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAICmpInst"] :=
LLVMLibraryFunction["LLVMIsAICmpInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAICmpInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAIndirectBrInst"] :=
LLVMLibraryFunction["LLVMIsAIndirectBrInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAIndirectBrInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAInlineAsm"] :=
LLVMLibraryFunction["LLVMIsAInlineAsm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAInlineAsm_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAInsertElementInst"] :=
LLVMLibraryFunction["LLVMIsAInsertElementInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAInsertElementInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAInsertValueInst"] :=
LLVMLibraryFunction["LLVMIsAInsertValueInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAInsertValueInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAInstruction"] :=
LLVMLibraryFunction["LLVMIsAInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAInstruction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAIntrinsicInst"] :=
LLVMLibraryFunction["LLVMIsAIntrinsicInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAIntrinsicInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAIntToPtrInst"] :=
LLVMLibraryFunction["LLVMIsAIntToPtrInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAIntToPtrInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAInvokeInst"] :=
LLVMLibraryFunction["LLVMIsAInvokeInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAInvokeInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsALandingPadInst"] :=
LLVMLibraryFunction["LLVMIsALandingPadInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsALandingPadInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsALoadInst"] :=
LLVMLibraryFunction["LLVMIsALoadInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsALoadInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAMDNode"] :=
LLVMLibraryFunction["LLVMIsAMDNode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAMDNode_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAMDString"] :=
LLVMLibraryFunction["LLVMIsAMDString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAMDString_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAMemCpyInst"] :=
LLVMLibraryFunction["LLVMIsAMemCpyInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAMemCpyInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAMemIntrinsic"] :=
LLVMLibraryFunction["LLVMIsAMemIntrinsic"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAMemIntrinsic_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAMemMoveInst"] :=
LLVMLibraryFunction["LLVMIsAMemMoveInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAMemMoveInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAMemSetInst"] :=
LLVMLibraryFunction["LLVMIsAMemSetInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAMemSetInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAPHINode"] :=
LLVMLibraryFunction["LLVMIsAPHINode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAPHINode_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAPtrToIntInst"] :=
LLVMLibraryFunction["LLVMIsAPtrToIntInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAPtrToIntInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAResumeInst"] :=
LLVMLibraryFunction["LLVMIsAResumeInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAResumeInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAReturnInst"] :=
LLVMLibraryFunction["LLVMIsAReturnInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAReturnInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsASelectInst"] :=
LLVMLibraryFunction["LLVMIsASelectInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsASelectInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsASExtInst"] :=
LLVMLibraryFunction["LLVMIsASExtInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsASExtInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAShuffleVectorInst"] :=
LLVMLibraryFunction["LLVMIsAShuffleVectorInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAShuffleVectorInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsASIToFPInst"] :=
LLVMLibraryFunction["LLVMIsASIToFPInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsASIToFPInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAStoreInst"] :=
LLVMLibraryFunction["LLVMIsAStoreInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAStoreInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsASwitchInst"] :=
LLVMLibraryFunction["LLVMIsASwitchInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsASwitchInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsATerminatorInst"] :=
LLVMLibraryFunction["LLVMIsATerminatorInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsATerminatorInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAtomicSingleThread"] :=
LLVMLibraryFunction["LLVMIsAtomicSingleThread"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAtomicSingleThread_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsATruncInst"] :=
LLVMLibraryFunction["LLVMIsATruncInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsATruncInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAUIToFPInst"] :=
LLVMLibraryFunction["LLVMIsAUIToFPInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAUIToFPInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAUnaryInstruction"] :=
LLVMLibraryFunction["LLVMIsAUnaryInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAUnaryInstruction_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAUndefValue"] :=
LLVMLibraryFunction["LLVMIsAUndefValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAUndefValue_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAUnreachableInst"] :=
LLVMLibraryFunction["LLVMIsAUnreachableInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAUnreachableInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAUser"] :=
LLVMLibraryFunction["LLVMIsAUser"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAUser_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAVAArgInst"] :=
LLVMLibraryFunction["LLVMIsAVAArgInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAVAArgInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsAZExtInst"] :=
LLVMLibraryFunction["LLVMIsAZExtInst"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsAZExtInst_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMIsCleanup"] :=
LLVMLibraryFunction["LLVMIsCleanup"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsCleanup_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsConditional"] :=
LLVMLibraryFunction["LLVMIsConditional"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsConditional_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsConstant"] :=
LLVMLibraryFunction["LLVMIsConstant"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsConstant_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsConstantString"] :=
LLVMLibraryFunction["LLVMIsConstantString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsConstantString_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsDeclaration"] :=
LLVMLibraryFunction["LLVMIsDeclaration"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsDeclaration_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsEnumAttribute"] :=
LLVMLibraryFunction["LLVMIsEnumAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsEnumAttribute_Wrapper",
	{
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsExternallyInitialized"] :=
LLVMLibraryFunction["LLVMIsExternallyInitialized"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsExternallyInitialized_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsFunctionVarArg"] :=
LLVMLibraryFunction["LLVMIsFunctionVarArg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsFunctionVarArg_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsGlobalConstant"] :=
LLVMLibraryFunction["LLVMIsGlobalConstant"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsGlobalConstant_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsInBounds"] :=
LLVMLibraryFunction["LLVMIsInBounds"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsInBounds_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsMultithreaded"] :=
LLVMLibraryFunction["LLVMIsMultithreaded"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsMultithreaded_Wrapper",
	{

	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsNull"] :=
LLVMLibraryFunction["LLVMIsNull"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsNull_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsOpaqueStruct"] :=
LLVMLibraryFunction["LLVMIsOpaqueStruct"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsOpaqueStruct_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsPackedStruct"] :=
LLVMLibraryFunction["LLVMIsPackedStruct"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsPackedStruct_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsStringAttribute"] :=
LLVMLibraryFunction["LLVMIsStringAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsStringAttribute_Wrapper",
	{
		(* Type[LLVMAttributeRef -> struct LLVMOpaqueAttributeRef *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsTailCall"] :=
LLVMLibraryFunction["LLVMIsTailCall"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsTailCall_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsThreadLocal"] :=
LLVMLibraryFunction["LLVMIsThreadLocal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsThreadLocal_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsUndef"] :=
LLVMLibraryFunction["LLVMIsUndef"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsUndef_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMLabelType"] :=
LLVMLibraryFunction["LLVMLabelType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMLabelType_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMLabelTypeInContext"] :=
LLVMLibraryFunction["LLVMLabelTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMLabelTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMMDNode"] :=
LLVMLibraryFunction["LLVMMDNode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMDNode_Wrapper",
	{
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMMDNodeInContext"] :=
LLVMLibraryFunction["LLVMMDNodeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMDNodeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMMDString"] :=
LLVMLibraryFunction["LLVMMDString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMDString_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMMDStringInContext"] :=
LLVMLibraryFunction["LLVMMDStringInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMDStringInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMMetadataAsValue"] :=
LLVMLibraryFunction["LLVMMetadataAsValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMetadataAsValue_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMMetadataTypeInContext"] :=
LLVMLibraryFunction["LLVMMetadataTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMetadataTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMModuleCreateWithName"] :=
LLVMLibraryFunction["LLVMModuleCreateWithName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMModuleCreateWithName_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
	Integer
])

LLVMLibraryFunction["LLVMModuleCreateWithNameInContext"] :=
LLVMLibraryFunction["LLVMModuleCreateWithNameInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMModuleCreateWithNameInContext_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
	Integer
])

LLVMLibraryFunction["LLVMModuleFlagEntriesGetFlagBehavior"] :=
LLVMLibraryFunction["LLVMModuleFlagEntriesGetFlagBehavior"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMModuleFlagEntriesGetFlagBehavior_Wrapper",
	{
		(* Type[LLVMModuleFlagEntry * -> LLVMOpaqueModuleFlagEntry *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMModuleFlagBehavior -> enum LLVMModuleFlagBehavior] *)
	Integer
])

LLVMLibraryFunction["LLVMModuleFlagEntriesGetKey"] :=
LLVMLibraryFunction["LLVMModuleFlagEntriesGetKey"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMModuleFlagEntriesGetKey_Wrapper",
	{
		(* Type[LLVMModuleFlagEntry * -> LLVMOpaqueModuleFlagEntry *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMModuleFlagEntriesGetMetadata"] :=
LLVMLibraryFunction["LLVMModuleFlagEntriesGetMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMModuleFlagEntriesGetMetadata_Wrapper",
	{
		(* Type[LLVMModuleFlagEntry * -> LLVMOpaqueModuleFlagEntry *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMMoveBasicBlockAfter"] :=
LLVMLibraryFunction["LLVMMoveBasicBlockAfter"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMoveBasicBlockAfter_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMMoveBasicBlockBefore"] :=
LLVMLibraryFunction["LLVMMoveBasicBlockBefore"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMoveBasicBlockBefore_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPointerType"] :=
LLVMLibraryFunction["LLVMPointerType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPointerType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMPositionBuilder"] :=
LLVMLibraryFunction["LLVMPositionBuilder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPositionBuilder_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPositionBuilderAtEnd"] :=
LLVMLibraryFunction["LLVMPositionBuilderAtEnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPositionBuilderAtEnd_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPositionBuilderBefore"] :=
LLVMLibraryFunction["LLVMPositionBuilderBefore"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPositionBuilderBefore_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPPCFP128Type"] :=
LLVMLibraryFunction["LLVMPPCFP128Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPPCFP128Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMPPCFP128TypeInContext"] :=
LLVMLibraryFunction["LLVMPPCFP128TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPPCFP128TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMPrintModuleToFile"] :=
LLVMLibraryFunction["LLVMPrintModuleToFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPrintModuleToFile_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMPrintModuleToString"] :=
LLVMLibraryFunction["LLVMPrintModuleToString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPrintModuleToString_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMPrintTypeToString"] :=
LLVMLibraryFunction["LLVMPrintTypeToString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPrintTypeToString_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMPrintValueToString"] :=
LLVMLibraryFunction["LLVMPrintValueToString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPrintValueToString_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMRemoveBasicBlockFromParent"] :=
LLVMLibraryFunction["LLVMRemoveBasicBlockFromParent"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRemoveBasicBlockFromParent_Wrapper",
	{
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRemoveCallSiteEnumAttribute"] :=
LLVMLibraryFunction["LLVMRemoveCallSiteEnumAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRemoveCallSiteEnumAttribute_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRemoveCallSiteStringAttribute"] :=
LLVMLibraryFunction["LLVMRemoveCallSiteStringAttribute"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRemoveCallSiteStringAttribute_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRemoveEnumAttributeAtIndex"] :=
LLVMLibraryFunction["LLVMRemoveEnumAttributeAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRemoveEnumAttributeAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRemoveStringAttributeAtIndex"] :=
LLVMLibraryFunction["LLVMRemoveStringAttributeAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRemoveStringAttributeAtIndex_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAttributeIndex -> unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMReplaceAllUsesWith"] :=
LLVMLibraryFunction["LLVMReplaceAllUsesWith"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMReplaceAllUsesWith_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRunFunctionPassManager"] :=
LLVMLibraryFunction["LLVMRunFunctionPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRunFunctionPassManager_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMRunPassManager"] :=
LLVMLibraryFunction["LLVMRunPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRunPassManager_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMSetAlignment"] :=
LLVMLibraryFunction["LLVMSetAlignment"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetAlignment_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetArgOperand"] :=
LLVMLibraryFunction["LLVMSetArgOperand"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetArgOperand_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetAtomicSingleThread"] :=
LLVMLibraryFunction["LLVMSetAtomicSingleThread"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetAtomicSingleThread_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetCleanup"] :=
LLVMLibraryFunction["LLVMSetCleanup"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetCleanup_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetCmpXchgFailureOrdering"] :=
LLVMLibraryFunction["LLVMSetCmpXchgFailureOrdering"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetCmpXchgFailureOrdering_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetCmpXchgSuccessOrdering"] :=
LLVMLibraryFunction["LLVMSetCmpXchgSuccessOrdering"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetCmpXchgSuccessOrdering_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetCondition"] :=
LLVMLibraryFunction["LLVMSetCondition"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetCondition_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetCurrentDebugLocation"] :=
LLVMLibraryFunction["LLVMSetCurrentDebugLocation"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetCurrentDebugLocation_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetDataLayout"] :=
LLVMLibraryFunction["LLVMSetDataLayout"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetDataLayout_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetDLLStorageClass"] :=
LLVMLibraryFunction["LLVMSetDLLStorageClass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetDLLStorageClass_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMDLLStorageClass -> enum LLVMDLLStorageClass] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetExternallyInitialized"] :=
LLVMLibraryFunction["LLVMSetExternallyInitialized"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetExternallyInitialized_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetFunctionCallConv"] :=
LLVMLibraryFunction["LLVMSetFunctionCallConv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetFunctionCallConv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetGC"] :=
LLVMLibraryFunction["LLVMSetGC"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetGC_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetGlobalConstant"] :=
LLVMLibraryFunction["LLVMSetGlobalConstant"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetGlobalConstant_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetInitializer"] :=
LLVMLibraryFunction["LLVMSetInitializer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetInitializer_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetInstDebugLocation"] :=
LLVMLibraryFunction["LLVMSetInstDebugLocation"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetInstDebugLocation_Wrapper",
	{
		(* Type[LLVMBuilderRef -> struct LLVMOpaqueBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetInstrParamAlignment"] :=
LLVMLibraryFunction["LLVMSetInstrParamAlignment"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetInstrParamAlignment_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetInstructionCallConv"] :=
LLVMLibraryFunction["LLVMSetInstructionCallConv"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetInstructionCallConv_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetIsInBounds"] :=
LLVMLibraryFunction["LLVMSetIsInBounds"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetIsInBounds_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetLinkage"] :=
LLVMLibraryFunction["LLVMSetLinkage"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetLinkage_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMLinkage -> enum LLVMLinkage] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetMetadata"] :=
LLVMLibraryFunction["LLVMSetMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetMetadata_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetModuleIdentifier"] :=
LLVMLibraryFunction["LLVMSetModuleIdentifier"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetModuleIdentifier_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetModuleInlineAsm"] :=
LLVMLibraryFunction["LLVMSetModuleInlineAsm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetModuleInlineAsm_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetModuleInlineAsm2"] :=
LLVMLibraryFunction["LLVMSetModuleInlineAsm2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetModuleInlineAsm2_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetNormalDest"] :=
LLVMLibraryFunction["LLVMSetNormalDest"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetNormalDest_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetOperand"] :=
LLVMLibraryFunction["LLVMSetOperand"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetOperand_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetOrdering"] :=
LLVMLibraryFunction["LLVMSetOrdering"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetOrdering_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMAtomicOrdering -> enum LLVMAtomicOrdering] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetParamAlignment"] :=
LLVMLibraryFunction["LLVMSetParamAlignment"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetParamAlignment_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetParentCatchSwitch"] :=
LLVMLibraryFunction["LLVMSetParentCatchSwitch"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetParentCatchSwitch_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetPersonalityFn"] :=
LLVMLibraryFunction["LLVMSetPersonalityFn"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetPersonalityFn_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetSection"] :=
LLVMLibraryFunction["LLVMSetSection"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetSection_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetSourceFileName"] :=
LLVMLibraryFunction["LLVMSetSourceFileName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetSourceFileName_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetSuccessor"] :=
LLVMLibraryFunction["LLVMSetSuccessor"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetSuccessor_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetTailCall"] :=
LLVMLibraryFunction["LLVMSetTailCall"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetTailCall_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetTarget"] :=
LLVMLibraryFunction["LLVMSetTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetTarget_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetThreadLocal"] :=
LLVMLibraryFunction["LLVMSetThreadLocal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetThreadLocal_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetThreadLocalMode"] :=
LLVMLibraryFunction["LLVMSetThreadLocalMode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetThreadLocalMode_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMThreadLocalMode -> enum LLVMThreadLocalMode] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetUnnamedAddr"] :=
LLVMLibraryFunction["LLVMSetUnnamedAddr"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetUnnamedAddr_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetUnnamedAddress"] :=
LLVMLibraryFunction["LLVMSetUnnamedAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetUnnamedAddress_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMUnnamedAddr -> enum LLVMUnnamedAddr] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetUnwindDest"] :=
LLVMLibraryFunction["LLVMSetUnwindDest"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetUnwindDest_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetValueName"] :=
LLVMLibraryFunction["LLVMSetValueName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetValueName_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetValueName2"] :=
LLVMLibraryFunction["LLVMSetValueName2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetValueName2_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetVisibility"] :=
LLVMLibraryFunction["LLVMSetVisibility"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetVisibility_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMVisibility -> enum LLVMVisibility] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetVolatile"] :=
LLVMLibraryFunction["LLVMSetVolatile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetVolatile_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMShutdown"] :=
LLVMLibraryFunction["LLVMShutdown"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMShutdown_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSizeOf"] :=
LLVMLibraryFunction["LLVMSizeOf"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSizeOf_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMStartMultithreaded"] :=
LLVMLibraryFunction["LLVMStartMultithreaded"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStartMultithreaded_Wrapper",
	{

	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMStopMultithreaded"] :=
LLVMLibraryFunction["LLVMStopMultithreaded"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStopMultithreaded_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMStructCreateNamed"] :=
LLVMLibraryFunction["LLVMStructCreateNamed"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStructCreateNamed_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMStructGetTypeAtIndex"] :=
LLVMLibraryFunction["LLVMStructGetTypeAtIndex"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStructGetTypeAtIndex_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMStructSetBody"] :=
LLVMLibraryFunction["LLVMStructSetBody"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStructSetBody_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMStructType"] :=
LLVMLibraryFunction["LLVMStructType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStructType_Wrapper",
	{
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMStructTypeInContext"] :=
LLVMLibraryFunction["LLVMStructTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStructTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMTypeRef * -> struct LLVMOpaqueType * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMTokenTypeInContext"] :=
LLVMLibraryFunction["LLVMTokenTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTokenTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMTypeIsSized"] :=
LLVMLibraryFunction["LLVMTypeIsSized"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTypeIsSized_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMTypeOf"] :=
LLVMLibraryFunction["LLVMTypeOf"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTypeOf_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMValueAsBasicBlock"] :=
LLVMLibraryFunction["LLVMValueAsBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMValueAsBasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
	Integer
])

LLVMLibraryFunction["LLVMValueAsMetadata"] :=
LLVMLibraryFunction["LLVMValueAsMetadata"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMValueAsMetadata_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMValueIsBasicBlock"] :=
LLVMLibraryFunction["LLVMValueIsBasicBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMValueIsBasicBlock_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMVectorType"] :=
LLVMLibraryFunction["LLVMVectorType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMVectorType_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMVoidType"] :=
LLVMLibraryFunction["LLVMVoidType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMVoidType_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMVoidTypeInContext"] :=
LLVMLibraryFunction["LLVMVoidTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMVoidTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMX86FP80Type"] :=
LLVMLibraryFunction["LLVMX86FP80Type"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMX86FP80Type_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMX86FP80TypeInContext"] :=
LLVMLibraryFunction["LLVMX86FP80TypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMX86FP80TypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMX86MMXType"] :=
LLVMLibraryFunction["LLVMX86MMXType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMX86MMXType_Wrapper",
	{

	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMX86MMXTypeInContext"] :=
LLVMLibraryFunction["LLVMX86MMXTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMX86MMXTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateDIBuilder"] :=
LLVMLibraryFunction["LLVMCreateDIBuilder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateDIBuilder_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateDIBuilderDisallowUnresolved"] :=
LLVMLibraryFunction["LLVMCreateDIBuilderDisallowUnresolved"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateDIBuilderDisallowUnresolved_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
	Integer
])

LLVMLibraryFunction["LLVMDebugMetadataVersion"] :=
LLVMLibraryFunction["LLVMDebugMetadataVersion"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDebugMetadataVersion_Wrapper",
	{

	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateArrayType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateArrayType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateArrayType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateArtificialType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateArtificialType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateArtificialType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateAutoVariable"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateAutoVariable"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateAutoVariable_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[uint32_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateBasicType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateBasicType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateBasicType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[LLVMDWARFTypeEncoding -> unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateBitFieldMemberType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateBitFieldMemberType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateBitFieldMemberType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateClassType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateClassType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateClassType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateCompileUnit"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateCompileUnit"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateCompileUnit_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMDWARFSourceLanguage -> enum LLVMDWARFSourceLanguage] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMDWARFEmissionKind -> enum LLVMDWARFEmissionKind] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateConstantValueExpression"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateConstantValueExpression"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateConstantValueExpression_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[int64_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateDebugLocation"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateDebugLocation"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateDebugLocation_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateEnumerationType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateEnumerationType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateEnumerationType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateExpression"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateExpression"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateExpression_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[int64_t *] *)
		Integer,
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateFile"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateFile_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateForwardDecl"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateForwardDecl"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateForwardDecl_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateFunction"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateFunction_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateGlobalVariableExpression"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateGlobalVariableExpression"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateGlobalVariableExpression_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[uint32_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateImportedDeclaration"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateImportedDeclaration"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateImportedDeclaration_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateImportedModuleFromAlias"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateImportedModuleFromAlias"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateImportedModuleFromAlias_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateImportedModuleFromModule"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateImportedModuleFromModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateImportedModuleFromModule_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateImportedModuleFromNamespace"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateImportedModuleFromNamespace"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateImportedModuleFromNamespace_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateInheritance"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateInheritance"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateInheritance_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateLexicalBlock"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateLexicalBlock"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateLexicalBlock_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateLexicalBlockFile"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateLexicalBlockFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateLexicalBlockFile_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateMemberPointerType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateMemberPointerType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateMemberPointerType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateMemberType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateMemberType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateMemberType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateModule"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateModule_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateNameSpace"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateNameSpace"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateNameSpace_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateNullPtrType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateNullPtrType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateNullPtrType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateObjCIVar"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateObjCIVar"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateObjCIVar_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateObjCProperty"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateObjCProperty"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateObjCProperty_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateObjectPointerType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateObjectPointerType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateObjectPointerType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateParameterVariable"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateParameterVariable"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateParameterVariable_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreatePointerType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreatePointerType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreatePointerType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateQualifiedType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateQualifiedType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateQualifiedType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateReferenceType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateReferenceType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateReferenceType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateReplaceableCompositeType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateReplaceableCompositeType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateReplaceableCompositeType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateStaticMemberType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateStaticMemberType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateStaticMemberType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[uint32_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateStructType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateStructType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateStructType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateSubroutineType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateSubroutineType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateSubroutineType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateTempGlobalVariableFwdDecl"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateTempGlobalVariableFwdDecl"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateTempGlobalVariableFwdDecl_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[uint32_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateTypedef"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateTypedef"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateTypedef_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateUnionType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateUnionType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateUnionType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateUnspecifiedType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateUnspecifiedType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateUnspecifiedType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderCreateVectorType"] :=
LLVMLibraryFunction["LLVMDIBuilderCreateVectorType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderCreateVectorType_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint32_t] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderFinalize"] :=
LLVMLibraryFunction["LLVMDIBuilderFinalize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderFinalize_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDIBuilderGetOrCreateArray"] :=
LLVMLibraryFunction["LLVMDIBuilderGetOrCreateArray"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderGetOrCreateArray_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderGetOrCreateSubrange"] :=
LLVMLibraryFunction["LLVMDIBuilderGetOrCreateSubrange"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderGetOrCreateSubrange_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[int64_t] *)
		Integer,
		(* Type[int64_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderGetOrCreateTypeArray"] :=
LLVMLibraryFunction["LLVMDIBuilderGetOrCreateTypeArray"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderGetOrCreateTypeArray_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderInsertDbgValueAtEnd"] :=
LLVMLibraryFunction["LLVMDIBuilderInsertDbgValueAtEnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderInsertDbgValueAtEnd_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderInsertDbgValueBefore"] :=
LLVMLibraryFunction["LLVMDIBuilderInsertDbgValueBefore"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderInsertDbgValueBefore_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderInsertDeclareAtEnd"] :=
LLVMLibraryFunction["LLVMDIBuilderInsertDeclareAtEnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderInsertDeclareAtEnd_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMBasicBlockRef -> struct LLVMOpaqueBasicBlock *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMDIBuilderInsertDeclareBefore"] :=
LLVMLibraryFunction["LLVMDIBuilderInsertDeclareBefore"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDIBuilderInsertDeclareBefore_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMDILocationGetColumn"] :=
LLVMLibraryFunction["LLVMDILocationGetColumn"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDILocationGetColumn_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMDILocationGetLine"] :=
LLVMLibraryFunction["LLVMDILocationGetLine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDILocationGetLine_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMDILocationGetScope"] :=
LLVMLibraryFunction["LLVMDILocationGetScope"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDILocationGetScope_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMDisposeDIBuilder"] :=
LLVMLibraryFunction["LLVMDisposeDIBuilder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeDIBuilder_Wrapper",
	{
		(* Type[LLVMDIBuilderRef -> struct LLVMOpaqueDIBuilder *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeTemporaryMDNode"] :=
LLVMLibraryFunction["LLVMDisposeTemporaryMDNode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeTemporaryMDNode_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDITypeGetAlignInBits"] :=
LLVMLibraryFunction["LLVMDITypeGetAlignInBits"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDITypeGetAlignInBits_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[uint32_t] *)
	Integer
])

LLVMLibraryFunction["LLVMDITypeGetFlags"] :=
LLVMLibraryFunction["LLVMDITypeGetFlags"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDITypeGetFlags_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[LLVMDIFlags -> enum LLVMDIFlags] *)
	Integer
])

LLVMLibraryFunction["LLVMDITypeGetLine"] :=
LLVMLibraryFunction["LLVMDITypeGetLine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDITypeGetLine_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMDITypeGetName"] :=
LLVMLibraryFunction["LLVMDITypeGetName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDITypeGetName_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[size_t *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMDITypeGetOffsetInBits"] :=
LLVMLibraryFunction["LLVMDITypeGetOffsetInBits"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDITypeGetOffsetInBits_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMDITypeGetSizeInBits"] :=
LLVMLibraryFunction["LLVMDITypeGetSizeInBits"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDITypeGetSizeInBits_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetModuleDebugMetadataVersion"] :=
LLVMLibraryFunction["LLVMGetModuleDebugMetadataVersion"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetModuleDebugMetadataVersion_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSubprogram"] :=
LLVMLibraryFunction["LLVMGetSubprogram"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSubprogram_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMMetadataReplaceAllUsesWith"] :=
LLVMLibraryFunction["LLVMMetadataReplaceAllUsesWith"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMetadataReplaceAllUsesWith_Wrapper",
	{
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSetSubprogram"] :=
LLVMLibraryFunction["LLVMSetSubprogram"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetSubprogram_Wrapper",
	{
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMStripModuleDebugInfo"] :=
LLVMLibraryFunction["LLVMStripModuleDebugInfo"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStripModuleDebugInfo_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMTemporaryMDNode"] :=
LLVMLibraryFunction["LLVMTemporaryMDNode"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTemporaryMDNode_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMetadataRef * -> struct LLVMOpaqueMetadata * *] *)
		Integer,
		(* Type[size_t] *)
		Integer
	},
	(* Type[LLVMMetadataRef -> struct LLVMOpaqueMetadata *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateDisasm"] :=
LLVMLibraryFunction["LLVMCreateDisasm"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateDisasm_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[void *] *)
		Integer,
		(* Type[int] *)
		Integer,
		(* Type[LLVMOpInfoCallback -> int ( * )(void *, uint64_t, uint64_t, uint64_t, int, void * )] *)
		Integer,
		(* Type[LLVMSymbolLookupCallback -> const char * ( * )(void *, uint64_t, uint64_t *, uint64_t, const char ** )] *)
		Integer
	},
	(* Type[LLVMDisasmContextRef -> void *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateDisasmCPU"] :=
LLVMLibraryFunction["LLVMCreateDisasmCPU"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateDisasmCPU_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String",
		(* Type[void *] *)
		Integer,
		(* Type[int] *)
		Integer,
		(* Type[LLVMOpInfoCallback -> int ( * )(void *, uint64_t, uint64_t, uint64_t, int, void * )] *)
		Integer,
		(* Type[LLVMSymbolLookupCallback -> const char * ( * )(void *, uint64_t, uint64_t *, uint64_t, const char ** )] *)
		Integer
	},
	(* Type[LLVMDisasmContextRef -> void *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateDisasmCPUFeatures"] :=
LLVMLibraryFunction["LLVMCreateDisasmCPUFeatures"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateDisasmCPUFeatures_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String",
		(* Type[void *] *)
		Integer,
		(* Type[int] *)
		Integer,
		(* Type[LLVMOpInfoCallback -> int ( * )(void *, uint64_t, uint64_t, uint64_t, int, void * )] *)
		Integer,
		(* Type[LLVMSymbolLookupCallback -> const char * ( * )(void *, uint64_t, uint64_t *, uint64_t, const char ** )] *)
		Integer
	},
	(* Type[LLVMDisasmContextRef -> void *] *)
	Integer
])

LLVMLibraryFunction["LLVMDisasmDispose"] :=
LLVMLibraryFunction["LLVMDisasmDispose"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisasmDispose_Wrapper",
	{
		(* Type[LLVMDisasmContextRef -> void *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisasmInstruction"] :=
LLVMLibraryFunction["LLVMDisasmInstruction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisasmInstruction_Wrapper",
	{
		(* Type[LLVMDisasmContextRef -> void *] *)
		Integer,
		(* Type[uint8_t *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[uint64_t] *)
		Integer,
		(* Type[char *] *)
		"UTF8String",
		(* Type[size_t] *)
		Integer
	},
	(* Type[size_t] *)
	Integer
])

LLVMLibraryFunction["LLVMSetDisasmOptions"] :=
LLVMLibraryFunction["LLVMSetDisasmOptions"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetDisasmOptions_Wrapper",
	{
		(* Type[LLVMDisasmContextRef -> void *] *)
		Integer,
		(* Type[uint64_t] *)
		Integer
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMEnablePrettyStackTrace"] :=
LLVMLibraryFunction["LLVMEnablePrettyStackTrace"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMEnablePrettyStackTrace_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInstallFatalErrorHandler"] :=
LLVMLibraryFunction["LLVMInstallFatalErrorHandler"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInstallFatalErrorHandler_Wrapper",
	{
		(* Type[LLVMFatalErrorHandler -> void ( * )(const char * )] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMResetFatalErrorHandler"] :=
LLVMLibraryFunction["LLVMResetFatalErrorHandler"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMResetFatalErrorHandler_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddGlobalMapping"] :=
LLVMLibraryFunction["LLVMAddGlobalMapping"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddGlobalMapping_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddModule"] :=
LLVMLibraryFunction["LLVMAddModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddModule_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMCreateExecutionEngineForModule"] :=
LLVMLibraryFunction["LLVMCreateExecutionEngineForModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateExecutionEngineForModule_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef * -> struct LLVMOpaqueExecutionEngine * *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateGDBRegistrationListener"] :=
LLVMLibraryFunction["LLVMCreateGDBRegistrationListener"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateGDBRegistrationListener_Wrapper",
	{

	},
	(* Type[LLVMJITEventListenerRef -> struct LLVMOpaqueJITEventListener *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateGenericValueOfFloat"] :=
LLVMLibraryFunction["LLVMCreateGenericValueOfFloat"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateGenericValueOfFloat_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[double] *)
		Real
	},
	(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateGenericValueOfInt"] :=
LLVMLibraryFunction["LLVMCreateGenericValueOfInt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateGenericValueOfInt_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned long long] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateGenericValueOfPointer"] :=
LLVMLibraryFunction["LLVMCreateGenericValueOfPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateGenericValueOfPointer_Wrapper",
	{
		(* Type[void *] *)
		Integer
	},
	(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateIntelJITEventListener"] :=
LLVMLibraryFunction["LLVMCreateIntelJITEventListener"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateIntelJITEventListener_Wrapper",
	{

	},
	(* Type[LLVMJITEventListenerRef -> struct LLVMOpaqueJITEventListener *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateInterpreterForModule"] :=
LLVMLibraryFunction["LLVMCreateInterpreterForModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateInterpreterForModule_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef * -> struct LLVMOpaqueExecutionEngine * *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateJITCompilerForModule"] :=
LLVMLibraryFunction["LLVMCreateJITCompilerForModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateJITCompilerForModule_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef * -> struct LLVMOpaqueExecutionEngine * *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateMCJITCompilerForModule"] :=
LLVMLibraryFunction["LLVMCreateMCJITCompilerForModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateMCJITCompilerForModule_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef * -> struct LLVMOpaqueExecutionEngine * *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[struct LLVMMCJITCompilerOptions *] *)
		Integer,
		(* Type[size_t] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateOProfileJITEventListener"] :=
LLVMLibraryFunction["LLVMCreateOProfileJITEventListener"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateOProfileJITEventListener_Wrapper",
	{

	},
	(* Type[LLVMJITEventListenerRef -> struct LLVMOpaqueJITEventListener *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreatePerfJITEventListener"] :=
LLVMLibraryFunction["LLVMCreatePerfJITEventListener"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreatePerfJITEventListener_Wrapper",
	{

	},
	(* Type[LLVMJITEventListenerRef -> struct LLVMOpaqueJITEventListener *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateSimpleMCJITMemoryManager"] :=
LLVMLibraryFunction["LLVMCreateSimpleMCJITMemoryManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateSimpleMCJITMemoryManager_Wrapper",
	{
		(* Type[void *] *)
		Integer,
		(* Type[LLVMMemoryManagerAllocateCodeSectionCallback -> uint8_t * ( * )(void *, uintptr_t, unsigned int, unsigned int, const char * )] *)
		Integer,
		(* Type[LLVMMemoryManagerAllocateDataSectionCallback -> uint8_t * ( * )(void *, uintptr_t, unsigned int, unsigned int, const char *, int)] *)
		Integer,
		(* Type[LLVMMemoryManagerFinalizeMemoryCallback -> int ( * )(void *, char ** )] *)
		Integer,
		(* Type[LLVMMemoryManagerDestroyCallback -> void ( * )(void * )] *)
		Integer
	},
	(* Type[LLVMMCJITMemoryManagerRef -> struct LLVMOpaqueMCJITMemoryManager *] *)
	Integer
])

LLVMLibraryFunction["LLVMDisposeExecutionEngine"] :=
LLVMLibraryFunction["LLVMDisposeExecutionEngine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeExecutionEngine_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeGenericValue"] :=
LLVMLibraryFunction["LLVMDisposeGenericValue"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeGenericValue_Wrapper",
	{
		(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeMCJITMemoryManager"] :=
LLVMLibraryFunction["LLVMDisposeMCJITMemoryManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeMCJITMemoryManager_Wrapper",
	{
		(* Type[LLVMMCJITMemoryManagerRef -> struct LLVMOpaqueMCJITMemoryManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMFindFunction"] :=
LLVMLibraryFunction["LLVMFindFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFindFunction_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMValueRef * -> struct LLVMOpaqueValue * *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMFreeMachineCodeForFunction"] :=
LLVMLibraryFunction["LLVMFreeMachineCodeForFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMFreeMachineCodeForFunction_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGenericValueIntWidth"] :=
LLVMLibraryFunction["LLVMGenericValueIntWidth"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGenericValueIntWidth_Wrapper",
	{
		(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGenericValueToFloat"] :=
LLVMLibraryFunction["LLVMGenericValueToFloat"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGenericValueToFloat_Wrapper",
	{
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
		Integer
	},
	(* Type[double] *)
	Real
])

LLVMLibraryFunction["LLVMGenericValueToInt"] :=
LLVMLibraryFunction["LLVMGenericValueToInt"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGenericValueToInt_Wrapper",
	{
		(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[unsigned long long] *)
	Integer
])

LLVMLibraryFunction["LLVMGenericValueToPointer"] :=
LLVMLibraryFunction["LLVMGenericValueToPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGenericValueToPointer_Wrapper",
	{
		(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
		Integer
	},
	(* Type[void *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetExecutionEngineTargetData"] :=
LLVMLibraryFunction["LLVMGetExecutionEngineTargetData"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetExecutionEngineTargetData_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer
	},
	(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetExecutionEngineTargetMachine"] :=
LLVMLibraryFunction["LLVMGetExecutionEngineTargetMachine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetExecutionEngineTargetMachine_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer
	},
	(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetFunctionAddress"] :=
LLVMLibraryFunction["LLVMGetFunctionAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFunctionAddress_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetGlobalValueAddress"] :=
LLVMLibraryFunction["LLVMGetGlobalValueAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetGlobalValueAddress_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetPointerToGlobal"] :=
LLVMLibraryFunction["LLVMGetPointerToGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetPointerToGlobal_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void *] *)
	Integer
])

LLVMLibraryFunction["LLVMInitializeMCJITCompilerOptions"] :=
LLVMLibraryFunction["LLVMInitializeMCJITCompilerOptions"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeMCJITCompilerOptions_Wrapper",
	{
		(* Type[struct LLVMMCJITCompilerOptions *] *)
		Integer,
		(* Type[size_t] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMLinkInInterpreter"] :=
LLVMLibraryFunction["LLVMLinkInInterpreter"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMLinkInInterpreter_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMLinkInMCJIT"] :=
LLVMLibraryFunction["LLVMLinkInMCJIT"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMLinkInMCJIT_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRecompileAndRelinkFunction"] :=
LLVMLibraryFunction["LLVMRecompileAndRelinkFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRecompileAndRelinkFunction_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[void *] *)
	Integer
])

LLVMLibraryFunction["LLVMRemoveModule"] :=
LLVMLibraryFunction["LLVMRemoveModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRemoveModule_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMRunFunction"] :=
LLVMLibraryFunction["LLVMRunFunction"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRunFunction_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[LLVMGenericValueRef * -> struct LLVMOpaqueGenericValue * *] *)
		Integer
	},
	(* Type[LLVMGenericValueRef -> struct LLVMOpaqueGenericValue *] *)
	Integer
])

LLVMLibraryFunction["LLVMRunFunctionAsMain"] :=
LLVMLibraryFunction["LLVMRunFunctionAsMain"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRunFunctionAsMain_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer,
		(* Type[const char *const * -> const char **] *)
		Integer,
		(* Type[const char *const * -> const char **] *)
		Integer
	},
	(* Type[int] *)
	Integer
])

LLVMLibraryFunction["LLVMRunStaticConstructors"] :=
LLVMLibraryFunction["LLVMRunStaticConstructors"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRunStaticConstructors_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMRunStaticDestructors"] :=
LLVMLibraryFunction["LLVMRunStaticDestructors"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMRunStaticDestructors_Wrapper",
	{
		(* Type[LLVMExecutionEngineRef -> struct LLVMOpaqueExecutionEngine *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAggressiveInstCombiner"] :=
LLVMLibraryFunction["LLVMInitializeAggressiveInstCombiner"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAggressiveInstCombiner_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAnalysis"] :=
LLVMLibraryFunction["LLVMInitializeAnalysis"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAnalysis_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeCodeGen"] :=
LLVMLibraryFunction["LLVMInitializeCodeGen"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeCodeGen_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeInstCombine"] :=
LLVMLibraryFunction["LLVMInitializeInstCombine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeInstCombine_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeInstrumentation"] :=
LLVMLibraryFunction["LLVMInitializeInstrumentation"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeInstrumentation_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeIPA"] :=
LLVMLibraryFunction["LLVMInitializeIPA"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeIPA_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeIPO"] :=
LLVMLibraryFunction["LLVMInitializeIPO"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeIPO_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeObjCARCOpts"] :=
LLVMLibraryFunction["LLVMInitializeObjCARCOpts"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeObjCARCOpts_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeScalarOpts"] :=
LLVMLibraryFunction["LLVMInitializeScalarOpts"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeScalarOpts_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeTarget"] :=
LLVMLibraryFunction["LLVMInitializeTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeTarget_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeTransformUtils"] :=
LLVMLibraryFunction["LLVMInitializeTransformUtils"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeTransformUtils_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeVectorization"] :=
LLVMLibraryFunction["LLVMInitializeVectorization"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeVectorization_Wrapper",
	{
		(* Type[LLVMPassRegistryRef -> struct LLVMOpaquePassRegistry *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMParseIRInContext"] :=
LLVMLibraryFunction["LLVMParseIRInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMParseIRInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMModuleRef * -> struct LLVMOpaqueModule * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMLinkModules2"] :=
LLVMLibraryFunction["LLVMLinkModules2"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMLinkModules2_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateObjectFile"] :=
LLVMLibraryFunction["LLVMCreateObjectFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateObjectFile_Wrapper",
	{
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer
	},
	(* Type[LLVMObjectFileRef -> struct LLVMOpaqueObjectFile *] *)
	Integer
])

LLVMLibraryFunction["LLVMDisposeObjectFile"] :=
LLVMLibraryFunction["LLVMDisposeObjectFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeObjectFile_Wrapper",
	{
		(* Type[LLVMObjectFileRef -> struct LLVMOpaqueObjectFile *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeRelocationIterator"] :=
LLVMLibraryFunction["LLVMDisposeRelocationIterator"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeRelocationIterator_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeSectionIterator"] :=
LLVMLibraryFunction["LLVMDisposeSectionIterator"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeSectionIterator_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMDisposeSymbolIterator"] :=
LLVMLibraryFunction["LLVMDisposeSymbolIterator"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeSymbolIterator_Wrapper",
	{
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetRelocationOffset"] :=
LLVMLibraryFunction["LLVMGetRelocationOffset"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetRelocationOffset_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetRelocations"] :=
LLVMLibraryFunction["LLVMGetRelocations"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetRelocations_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetRelocationSymbol"] :=
LLVMLibraryFunction["LLVMGetRelocationSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetRelocationSymbol_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetRelocationType"] :=
LLVMLibraryFunction["LLVMGetRelocationType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetRelocationType_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetRelocationTypeName"] :=
LLVMLibraryFunction["LLVMGetRelocationTypeName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetRelocationTypeName_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetRelocationValueString"] :=
LLVMLibraryFunction["LLVMGetRelocationValueString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetRelocationValueString_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetSectionAddress"] :=
LLVMLibraryFunction["LLVMGetSectionAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSectionAddress_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSectionContainsSymbol"] :=
LLVMLibraryFunction["LLVMGetSectionContainsSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSectionContainsSymbol_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer,
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSectionContents"] :=
LLVMLibraryFunction["LLVMGetSectionContents"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSectionContents_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetSectionName"] :=
LLVMLibraryFunction["LLVMGetSectionName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSectionName_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetSections"] :=
LLVMLibraryFunction["LLVMGetSections"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSections_Wrapper",
	{
		(* Type[LLVMObjectFileRef -> struct LLVMOpaqueObjectFile *] *)
		Integer
	},
	(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSectionSize"] :=
LLVMLibraryFunction["LLVMGetSectionSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSectionSize_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSymbolAddress"] :=
LLVMLibraryFunction["LLVMGetSymbolAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSymbolAddress_Wrapper",
	{
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSymbolName"] :=
LLVMLibraryFunction["LLVMGetSymbolName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSymbolName_Wrapper",
	{
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetSymbols"] :=
LLVMLibraryFunction["LLVMGetSymbols"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSymbols_Wrapper",
	{
		(* Type[LLVMObjectFileRef -> struct LLVMOpaqueObjectFile *] *)
		Integer
	},
	(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetSymbolSize"] :=
LLVMLibraryFunction["LLVMGetSymbolSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetSymbolSize_Wrapper",
	{
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[uint64_t] *)
	Integer
])

LLVMLibraryFunction["LLVMIsRelocationIteratorAtEnd"] :=
LLVMLibraryFunction["LLVMIsRelocationIteratorAtEnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsRelocationIteratorAtEnd_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer,
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsSectionIteratorAtEnd"] :=
LLVMLibraryFunction["LLVMIsSectionIteratorAtEnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsSectionIteratorAtEnd_Wrapper",
	{
		(* Type[LLVMObjectFileRef -> struct LLVMOpaqueObjectFile *] *)
		Integer,
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIsSymbolIteratorAtEnd"] :=
LLVMLibraryFunction["LLVMIsSymbolIteratorAtEnd"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIsSymbolIteratorAtEnd_Wrapper",
	{
		(* Type[LLVMObjectFileRef -> struct LLVMOpaqueObjectFile *] *)
		Integer,
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMMoveToContainingSection"] :=
LLVMLibraryFunction["LLVMMoveToContainingSection"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMoveToContainingSection_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer,
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMMoveToNextRelocation"] :=
LLVMLibraryFunction["LLVMMoveToNextRelocation"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMoveToNextRelocation_Wrapper",
	{
		(* Type[LLVMRelocationIteratorRef -> struct LLVMOpaqueRelocationIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMMoveToNextSection"] :=
LLVMLibraryFunction["LLVMMoveToNextSection"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMoveToNextSection_Wrapper",
	{
		(* Type[LLVMSectionIteratorRef -> struct LLVMOpaqueSectionIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMMoveToNextSymbol"] :=
LLVMLibraryFunction["LLVMMoveToNextSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMMoveToNextSymbol_Wrapper",
	{
		(* Type[LLVMSymbolIteratorRef -> struct LLVMOpaqueSymbolIterator *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMOrcAddEagerlyCompiledIR"] :=
LLVMLibraryFunction["LLVMOrcAddEagerlyCompiledIR"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcAddEagerlyCompiledIR_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcModuleHandle * -> uint64_t *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMOrcSymbolResolverFn -> uint64_t ( * )(const char *, void * )] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcAddLazilyCompiledIR"] :=
LLVMLibraryFunction["LLVMOrcAddLazilyCompiledIR"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcAddLazilyCompiledIR_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcModuleHandle * -> uint64_t *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMOrcSymbolResolverFn -> uint64_t ( * )(const char *, void * )] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcAddObjectFile"] :=
LLVMLibraryFunction["LLVMOrcAddObjectFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcAddObjectFile_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcModuleHandle * -> uint64_t *] *)
		Integer,
		(* Type[LLVMMemoryBufferRef -> struct LLVMOpaqueMemoryBuffer *] *)
		Integer,
		(* Type[LLVMOrcSymbolResolverFn -> uint64_t ( * )(const char *, void * )] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcCreateIndirectStub"] :=
LLVMLibraryFunction["LLVMOrcCreateIndirectStub"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcCreateIndirectStub_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMOrcTargetAddress -> uint64_t] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcCreateInstance"] :=
LLVMLibraryFunction["LLVMOrcCreateInstance"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcCreateInstance_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcCreateLazyCompileCallback"] :=
LLVMLibraryFunction["LLVMOrcCreateLazyCompileCallback"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcCreateLazyCompileCallback_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcTargetAddress * -> uint64_t *] *)
		Integer,
		(* Type[LLVMOrcLazyCompileCallbackFn -> uint64_t ( * )(struct LLVMOrcOpaqueJITStack *, void * )] *)
		Integer,
		(* Type[void *] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcDisposeInstance"] :=
LLVMLibraryFunction["LLVMOrcDisposeInstance"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcDisposeInstance_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcDisposeMangledSymbol"] :=
LLVMLibraryFunction["LLVMOrcDisposeMangledSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcDisposeMangledSymbol_Wrapper",
	{
		(* Type[char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMOrcGetErrorMsg"] :=
LLVMLibraryFunction["LLVMOrcGetErrorMsg"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcGetErrorMsg_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMOrcGetMangledSymbol"] :=
LLVMLibraryFunction["LLVMOrcGetMangledSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcGetMangledSymbol_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[char **] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMOrcGetSymbolAddress"] :=
LLVMLibraryFunction["LLVMOrcGetSymbolAddress"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcGetSymbolAddress_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcTargetAddress * -> uint64_t *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcGetSymbolAddressIn"] :=
LLVMLibraryFunction["LLVMOrcGetSymbolAddressIn"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcGetSymbolAddressIn_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcTargetAddress * -> uint64_t *] *)
		Integer,
		(* Type[LLVMOrcModuleHandle -> uint64_t] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcRegisterJITEventListener"] :=
LLVMLibraryFunction["LLVMOrcRegisterJITEventListener"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcRegisterJITEventListener_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMJITEventListenerRef -> struct LLVMOpaqueJITEventListener *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMOrcRemoveModule"] :=
LLVMLibraryFunction["LLVMOrcRemoveModule"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcRemoveModule_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMOrcModuleHandle -> uint64_t] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcSetIndirectStubPointer"] :=
LLVMLibraryFunction["LLVMOrcSetIndirectStubPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcSetIndirectStubPointer_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMOrcTargetAddress -> uint64_t] *)
		Integer
	},
	(* Type[LLVMOrcErrorCode -> enum LLVMOrcErrorCode] *)
	Integer
])

LLVMLibraryFunction["LLVMOrcUnregisterJITEventListener"] :=
LLVMLibraryFunction["LLVMOrcUnregisterJITEventListener"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOrcUnregisterJITEventListener_Wrapper",
	{
		(* Type[LLVMOrcJITStackRef -> struct LLVMOrcOpaqueJITStack *] *)
		Integer,
		(* Type[LLVMJITEventListenerRef -> struct LLVMOpaqueJITEventListener *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddSymbol"] :=
LLVMLibraryFunction["LLVMAddSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddSymbol_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[void *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMLoadLibraryPermanently"] :=
LLVMLibraryFunction["LLVMLoadLibraryPermanently"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMLoadLibraryPermanently_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMParseCommandLineOptions"] :=
LLVMLibraryFunction["LLVMParseCommandLineOptions"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMParseCommandLineOptions_Wrapper",
	{
		(* Type[int] *)
		Integer,
		(* Type[const char *const * -> const char **] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSearchForAddressOfSymbol"] :=
LLVMLibraryFunction["LLVMSearchForAddressOfSymbol"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSearchForAddressOfSymbol_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[void *] *)
	Integer
])

LLVMLibraryFunction["LLVMABIAlignmentOfType"] :=
LLVMLibraryFunction["LLVMABIAlignmentOfType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMABIAlignmentOfType_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMABISizeOfType"] :=
LLVMLibraryFunction["LLVMABISizeOfType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMABISizeOfType_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned long long] *)
	Integer
])

LLVMLibraryFunction["LLVMAddTargetLibraryInfo"] :=
LLVMLibraryFunction["LLVMAddTargetLibraryInfo"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddTargetLibraryInfo_Wrapper",
	{
		(* Type[LLVMTargetLibraryInfoRef -> struct LLVMOpaqueTargetLibraryInfotData *] *)
		Integer,
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMByteOrder"] :=
LLVMLibraryFunction["LLVMByteOrder"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMByteOrder_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[LLVMByteOrdering -> enum LLVMByteOrdering] *)
	Integer
])

LLVMLibraryFunction["LLVMCallFrameAlignmentOfType"] :=
LLVMLibraryFunction["LLVMCallFrameAlignmentOfType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCallFrameAlignmentOfType_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMCopyStringRepOfTargetData"] :=
LLVMLibraryFunction["LLVMCopyStringRepOfTargetData"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCopyStringRepOfTargetData_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMCreateTargetData"] :=
LLVMLibraryFunction["LLVMCreateTargetData"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateTargetData_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
	Integer
])

LLVMLibraryFunction["LLVMDisposeTargetData"] :=
LLVMLibraryFunction["LLVMDisposeTargetData"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeTargetData_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMElementAtOffset"] :=
LLVMLibraryFunction["LLVMElementAtOffset"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMElementAtOffset_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned long long] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetModuleDataLayout"] :=
LLVMLibraryFunction["LLVMGetModuleDataLayout"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetModuleDataLayout_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer
	},
	(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
	Integer
])

LLVMLibraryFunction["LLVMInitializeAllAsmParsers"] :=
LLVMLibraryFunction["LLVMInitializeAllAsmParsers"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAllAsmParsers_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAllAsmPrinters"] :=
LLVMLibraryFunction["LLVMInitializeAllAsmPrinters"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAllAsmPrinters_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAllDisassemblers"] :=
LLVMLibraryFunction["LLVMInitializeAllDisassemblers"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAllDisassemblers_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAllTargetInfos"] :=
LLVMLibraryFunction["LLVMInitializeAllTargetInfos"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAllTargetInfos_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAllTargetMCs"] :=
LLVMLibraryFunction["LLVMInitializeAllTargetMCs"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAllTargetMCs_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeAllTargets"] :=
LLVMLibraryFunction["LLVMInitializeAllTargets"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeAllTargets_Wrapper",
	{

	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMInitializeNativeAsmParser"] :=
LLVMLibraryFunction["LLVMInitializeNativeAsmParser"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeNativeAsmParser_Wrapper",
	{

	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMInitializeNativeAsmPrinter"] :=
LLVMLibraryFunction["LLVMInitializeNativeAsmPrinter"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeNativeAsmPrinter_Wrapper",
	{

	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMInitializeNativeDisassembler"] :=
LLVMLibraryFunction["LLVMInitializeNativeDisassembler"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeNativeDisassembler_Wrapper",
	{

	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMInitializeNativeTarget"] :=
LLVMLibraryFunction["LLVMInitializeNativeTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMInitializeNativeTarget_Wrapper",
	{

	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMIntPtrType"] :=
LLVMLibraryFunction["LLVMIntPtrType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIntPtrType_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMIntPtrTypeForAS"] :=
LLVMLibraryFunction["LLVMIntPtrTypeForAS"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIntPtrTypeForAS_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMIntPtrTypeForASInContext"] :=
LLVMLibraryFunction["LLVMIntPtrTypeForASInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIntPtrTypeForASInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMIntPtrTypeInContext"] :=
LLVMLibraryFunction["LLVMIntPtrTypeInContext"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMIntPtrTypeInContext_Wrapper",
	{
		(* Type[LLVMContextRef -> struct LLVMOpaqueContext *] *)
		Integer,
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
	Integer
])

LLVMLibraryFunction["LLVMOffsetOfElement"] :=
LLVMLibraryFunction["LLVMOffsetOfElement"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMOffsetOfElement_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[unsigned long long] *)
	Integer
])

LLVMLibraryFunction["LLVMPointerSize"] :=
LLVMLibraryFunction["LLVMPointerSize"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPointerSize_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMPointerSizeForAS"] :=
LLVMLibraryFunction["LLVMPointerSizeForAS"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPointerSizeForAS_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMPreferredAlignmentOfGlobal"] :=
LLVMLibraryFunction["LLVMPreferredAlignmentOfGlobal"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPreferredAlignmentOfGlobal_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMValueRef -> struct LLVMOpaqueValue *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMPreferredAlignmentOfType"] :=
LLVMLibraryFunction["LLVMPreferredAlignmentOfType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPreferredAlignmentOfType_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned int] *)
	Integer
])

LLVMLibraryFunction["LLVMSetModuleDataLayout"] :=
LLVMLibraryFunction["LLVMSetModuleDataLayout"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetModuleDataLayout_Wrapper",
	{
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMSizeOfTypeInBits"] :=
LLVMLibraryFunction["LLVMSizeOfTypeInBits"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSizeOfTypeInBits_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned long long] *)
	Integer
])

LLVMLibraryFunction["LLVMStoreSizeOfType"] :=
LLVMLibraryFunction["LLVMStoreSizeOfType"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMStoreSizeOfType_Wrapper",
	{
		(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
		Integer,
		(* Type[LLVMTypeRef -> struct LLVMOpaqueType *] *)
		Integer
	},
	(* Type[unsigned long long] *)
	Integer
])

LLVMLibraryFunction["LLVMAddAnalysisPasses"] :=
LLVMLibraryFunction["LLVMAddAnalysisPasses"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAnalysisPasses_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer,
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMCreateTargetDataLayout"] :=
LLVMLibraryFunction["LLVMCreateTargetDataLayout"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateTargetDataLayout_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[LLVMTargetDataRef -> struct LLVMOpaqueTargetData *] *)
	Integer
])

LLVMLibraryFunction["LLVMCreateTargetMachine"] :=
LLVMLibraryFunction["LLVMCreateTargetMachine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMCreateTargetMachine_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer,
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String",
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMCodeGenOptLevel -> enum LLVMCodeGenOptLevel] *)
		Integer,
		(* Type[LLVMRelocMode -> enum LLVMRelocMode] *)
		Integer,
		(* Type[LLVMCodeModel -> enum LLVMCodeModel] *)
		Integer
	},
	(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
	Integer
])

LLVMLibraryFunction["LLVMDisposeTargetMachine"] :=
LLVMLibraryFunction["LLVMDisposeTargetMachine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMDisposeTargetMachine_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMGetDefaultTargetTriple"] :=
LLVMLibraryFunction["LLVMGetDefaultTargetTriple"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetDefaultTargetTriple_Wrapper",
	{

	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetFirstTarget"] :=
LLVMLibraryFunction["LLVMGetFirstTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetFirstTarget_Wrapper",
	{

	},
	(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetHostCPUFeatures"] :=
LLVMLibraryFunction["LLVMGetHostCPUFeatures"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetHostCPUFeatures_Wrapper",
	{

	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetHostCPUName"] :=
LLVMLibraryFunction["LLVMGetHostCPUName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetHostCPUName_Wrapper",
	{

	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetNextTarget"] :=
LLVMLibraryFunction["LLVMGetNextTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetNextTarget_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer
	},
	(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTargetDescription"] :=
LLVMLibraryFunction["LLVMGetTargetDescription"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetDescription_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetTargetFromName"] :=
LLVMLibraryFunction["LLVMGetTargetFromName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetFromName_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTargetFromTriple"] :=
LLVMLibraryFunction["LLVMGetTargetFromTriple"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetFromTriple_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String",
		(* Type[LLVMTargetRef * -> struct LLVMTarget * *] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTargetMachineCPU"] :=
LLVMLibraryFunction["LLVMGetTargetMachineCPU"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetMachineCPU_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetTargetMachineFeatureString"] :=
LLVMLibraryFunction["LLVMGetTargetMachineFeatureString"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetMachineFeatureString_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetTargetMachineTarget"] :=
LLVMLibraryFunction["LLVMGetTargetMachineTarget"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetMachineTarget_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
	Integer
])

LLVMLibraryFunction["LLVMGetTargetMachineTriple"] :=
LLVMLibraryFunction["LLVMGetTargetMachineTriple"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetMachineTriple_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMGetTargetName"] :=
LLVMLibraryFunction["LLVMGetTargetName"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMGetTargetName_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer
	},
	(* Type[const char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMNormalizeTargetTriple"] :=
LLVMLibraryFunction["LLVMNormalizeTargetTriple"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMNormalizeTargetTriple_Wrapper",
	{
		(* Type[const char *] *)
		"UTF8String"
	},
	(* Type[char *] *)
	"UTF8String"
])

LLVMLibraryFunction["LLVMSetTargetMachineAsmVerbosity"] :=
LLVMLibraryFunction["LLVMSetTargetMachineAsmVerbosity"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMSetTargetMachineAsmVerbosity_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMTargetHasAsmBackend"] :=
LLVMLibraryFunction["LLVMTargetHasAsmBackend"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTargetHasAsmBackend_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMTargetHasJIT"] :=
LLVMLibraryFunction["LLVMTargetHasJIT"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTargetHasJIT_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMTargetHasTargetMachine"] :=
LLVMLibraryFunction["LLVMTargetHasTargetMachine"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTargetHasTargetMachine_Wrapper",
	{
		(* Type[LLVMTargetRef -> struct LLVMTarget *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMTargetMachineEmitToFile"] :=
LLVMLibraryFunction["LLVMTargetMachineEmitToFile"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTargetMachineEmitToFile_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[char *] *)
		"UTF8String",
		(* Type[LLVMCodeGenFileType -> enum LLVMCodeGenFileType] *)
		Integer,
		(* Type[char **] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMTargetMachineEmitToMemoryBuffer"] :=
LLVMLibraryFunction["LLVMTargetMachineEmitToMemoryBuffer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMTargetMachineEmitToMemoryBuffer_Wrapper",
	{
		(* Type[LLVMTargetMachineRef -> struct LLVMOpaqueTargetMachine *] *)
		Integer,
		(* Type[LLVMModuleRef -> struct LLVMOpaqueModule *] *)
		Integer,
		(* Type[LLVMCodeGenFileType -> enum LLVMCodeGenFileType] *)
		Integer,
		(* Type[char **] *)
		Integer,
		(* Type[LLVMMemoryBufferRef * -> struct LLVMOpaqueMemoryBuffer * *] *)
		Integer
	},
	(* Type[LLVMBool -> int] *)
	Integer
])

LLVMLibraryFunction["LLVMAddInstructionCombiningPass"] :=
LLVMLibraryFunction["LLVMAddInstructionCombiningPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddInstructionCombiningPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddAlwaysInlinerPass"] :=
LLVMLibraryFunction["LLVMAddAlwaysInlinerPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAlwaysInlinerPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddArgumentPromotionPass"] :=
LLVMLibraryFunction["LLVMAddArgumentPromotionPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddArgumentPromotionPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddCalledValuePropagationPass"] :=
LLVMLibraryFunction["LLVMAddCalledValuePropagationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddCalledValuePropagationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddConstantMergePass"] :=
LLVMLibraryFunction["LLVMAddConstantMergePass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddConstantMergePass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddDeadArgEliminationPass"] :=
LLVMLibraryFunction["LLVMAddDeadArgEliminationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddDeadArgEliminationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddFunctionAttrsPass"] :=
LLVMLibraryFunction["LLVMAddFunctionAttrsPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddFunctionAttrsPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddFunctionInliningPass"] :=
LLVMLibraryFunction["LLVMAddFunctionInliningPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddFunctionInliningPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddGlobalDCEPass"] :=
LLVMLibraryFunction["LLVMAddGlobalDCEPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddGlobalDCEPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddGlobalOptimizerPass"] :=
LLVMLibraryFunction["LLVMAddGlobalOptimizerPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddGlobalOptimizerPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddInternalizePass"] :=
LLVMLibraryFunction["LLVMAddInternalizePass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddInternalizePass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddIPConstantPropagationPass"] :=
LLVMLibraryFunction["LLVMAddIPConstantPropagationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddIPConstantPropagationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddIPSCCPPass"] :=
LLVMLibraryFunction["LLVMAddIPSCCPPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddIPSCCPPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddPruneEHPass"] :=
LLVMLibraryFunction["LLVMAddPruneEHPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddPruneEHPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddStripDeadPrototypesPass"] :=
LLVMLibraryFunction["LLVMAddStripDeadPrototypesPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddStripDeadPrototypesPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddStripSymbolsPass"] :=
LLVMLibraryFunction["LLVMAddStripSymbolsPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddStripSymbolsPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderCreate"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderCreate"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderCreate_Wrapper",
	{

	},
	(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
	Integer
])

LLVMLibraryFunction["LLVMPassManagerBuilderDispose"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderDispose"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderDispose_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderPopulateFunctionPassManager"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderPopulateFunctionPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderPopulateFunctionPassManager_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderPopulateLTOPassManager"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderPopulateLTOPassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderPopulateLTOPassManager_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderPopulateModulePassManager"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderPopulateModulePassManager"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderPopulateModulePassManager_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderSetDisableSimplifyLibCalls"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderSetDisableSimplifyLibCalls"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderSetDisableSimplifyLibCalls_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderSetDisableUnitAtATime"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderSetDisableUnitAtATime"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderSetDisableUnitAtATime_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderSetDisableUnrollLoops"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderSetDisableUnrollLoops"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderSetDisableUnrollLoops_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[LLVMBool -> int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderSetOptLevel"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderSetOptLevel"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderSetOptLevel_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderSetSizeLevel"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderSetSizeLevel"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderSetSizeLevel_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMPassManagerBuilderUseInlinerWithThreshold"] :=
LLVMLibraryFunction["LLVMPassManagerBuilderUseInlinerWithThreshold"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMPassManagerBuilderUseInlinerWithThreshold_Wrapper",
	{
		(* Type[LLVMPassManagerBuilderRef -> struct LLVMOpaquePassManagerBuilder *] *)
		Integer,
		(* Type[unsigned int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddAggressiveDCEPass"] :=
LLVMLibraryFunction["LLVMAddAggressiveDCEPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAggressiveDCEPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddAggressiveInstCombinerPass"] :=
LLVMLibraryFunction["LLVMAddAggressiveInstCombinerPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAggressiveInstCombinerPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddAlignmentFromAssumptionsPass"] :=
LLVMLibraryFunction["LLVMAddAlignmentFromAssumptionsPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddAlignmentFromAssumptionsPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddBasicAliasAnalysisPass"] :=
LLVMLibraryFunction["LLVMAddBasicAliasAnalysisPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddBasicAliasAnalysisPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddBitTrackingDCEPass"] :=
LLVMLibraryFunction["LLVMAddBitTrackingDCEPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddBitTrackingDCEPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddCFGSimplificationPass"] :=
LLVMLibraryFunction["LLVMAddCFGSimplificationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddCFGSimplificationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddConstantPropagationPass"] :=
LLVMLibraryFunction["LLVMAddConstantPropagationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddConstantPropagationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddCorrelatedValuePropagationPass"] :=
LLVMLibraryFunction["LLVMAddCorrelatedValuePropagationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddCorrelatedValuePropagationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddDeadStoreEliminationPass"] :=
LLVMLibraryFunction["LLVMAddDeadStoreEliminationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddDeadStoreEliminationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddDemoteMemoryToRegisterPass"] :=
LLVMLibraryFunction["LLVMAddDemoteMemoryToRegisterPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddDemoteMemoryToRegisterPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddEarlyCSEMemSSAPass"] :=
LLVMLibraryFunction["LLVMAddEarlyCSEMemSSAPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddEarlyCSEMemSSAPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddEarlyCSEPass"] :=
LLVMLibraryFunction["LLVMAddEarlyCSEPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddEarlyCSEPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddGVNPass"] :=
LLVMLibraryFunction["LLVMAddGVNPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddGVNPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddIndVarSimplifyPass"] :=
LLVMLibraryFunction["LLVMAddIndVarSimplifyPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddIndVarSimplifyPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddJumpThreadingPass"] :=
LLVMLibraryFunction["LLVMAddJumpThreadingPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddJumpThreadingPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLICMPass"] :=
LLVMLibraryFunction["LLVMAddLICMPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLICMPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopDeletionPass"] :=
LLVMLibraryFunction["LLVMAddLoopDeletionPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopDeletionPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopIdiomPass"] :=
LLVMLibraryFunction["LLVMAddLoopIdiomPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopIdiomPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopRerollPass"] :=
LLVMLibraryFunction["LLVMAddLoopRerollPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopRerollPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopRotatePass"] :=
LLVMLibraryFunction["LLVMAddLoopRotatePass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopRotatePass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopUnrollAndJamPass"] :=
LLVMLibraryFunction["LLVMAddLoopUnrollAndJamPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopUnrollAndJamPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopUnrollPass"] :=
LLVMLibraryFunction["LLVMAddLoopUnrollPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopUnrollPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopUnswitchPass"] :=
LLVMLibraryFunction["LLVMAddLoopUnswitchPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopUnswitchPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLowerExpectIntrinsicPass"] :=
LLVMLibraryFunction["LLVMAddLowerExpectIntrinsicPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLowerExpectIntrinsicPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddMemCpyOptPass"] :=
LLVMLibraryFunction["LLVMAddMemCpyOptPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddMemCpyOptPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddMergedLoadStoreMotionPass"] :=
LLVMLibraryFunction["LLVMAddMergedLoadStoreMotionPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddMergedLoadStoreMotionPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddNewGVNPass"] :=
LLVMLibraryFunction["LLVMAddNewGVNPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddNewGVNPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddPartiallyInlineLibCallsPass"] :=
LLVMLibraryFunction["LLVMAddPartiallyInlineLibCallsPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddPartiallyInlineLibCallsPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddReassociatePass"] :=
LLVMLibraryFunction["LLVMAddReassociatePass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddReassociatePass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddScalarizerPass"] :=
LLVMLibraryFunction["LLVMAddScalarizerPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddScalarizerPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddScalarReplAggregatesPass"] :=
LLVMLibraryFunction["LLVMAddScalarReplAggregatesPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddScalarReplAggregatesPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddScalarReplAggregatesPassSSA"] :=
LLVMLibraryFunction["LLVMAddScalarReplAggregatesPassSSA"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddScalarReplAggregatesPassSSA_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddScalarReplAggregatesPassWithThreshold"] :=
LLVMLibraryFunction["LLVMAddScalarReplAggregatesPassWithThreshold"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddScalarReplAggregatesPassWithThreshold_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer,
		(* Type[int] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddSCCPPass"] :=
LLVMLibraryFunction["LLVMAddSCCPPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddSCCPPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddScopedNoAliasAAPass"] :=
LLVMLibraryFunction["LLVMAddScopedNoAliasAAPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddScopedNoAliasAAPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddSimplifyLibCallsPass"] :=
LLVMLibraryFunction["LLVMAddSimplifyLibCallsPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddSimplifyLibCallsPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddTailCallEliminationPass"] :=
LLVMLibraryFunction["LLVMAddTailCallEliminationPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddTailCallEliminationPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddTypeBasedAliasAnalysisPass"] :=
LLVMLibraryFunction["LLVMAddTypeBasedAliasAnalysisPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddTypeBasedAliasAnalysisPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddVerifierPass"] :=
LLVMLibraryFunction["LLVMAddVerifierPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddVerifierPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLowerSwitchPass"] :=
LLVMLibraryFunction["LLVMAddLowerSwitchPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLowerSwitchPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddPromoteMemoryToRegisterPass"] :=
LLVMLibraryFunction["LLVMAddPromoteMemoryToRegisterPass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddPromoteMemoryToRegisterPass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddLoopVectorizePass"] :=
LLVMLibraryFunction["LLVMAddLoopVectorizePass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddLoopVectorizePass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMAddSLPVectorizePass"] :=
LLVMLibraryFunction["LLVMAddSLPVectorizePass"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_LLVMAddSLPVectorizePass_Wrapper",
	{
		(* Type[LLVMPassManagerRef -> struct LLVMOpaquePassManager *] *)
		Integer
	},
	(* Type[void] *)
	"Void"
])

LLVMLibraryFunction["LLVMLink_allocateCharObject"] :=
LLVMLibraryFunction["LLVMLink_allocateCharObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateCharObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateCharObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateCharObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateCharObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateConstCharObject"] :=
LLVMLibraryFunction["LLVMLink_allocateConstCharObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateConstCharObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateConstCharObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateConstCharObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateConstCharObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateConstUint64_tObject"] :=
LLVMLibraryFunction["LLVMLink_allocateConstUint64_tObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateConstUint64_tObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateIntObject"] :=
LLVMLibraryFunction["LLVMLink_allocateIntObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateIntObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateInt64_tObject"] :=
LLVMLibraryFunction["LLVMLink_allocateInt64_tObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateInt64_tObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueModuleFlagEntryObject"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueModuleFlagEntryObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueModuleFlagEntryObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateSize_tObject"] :=
LLVMLibraryFunction["LLVMLink_allocateSize_tObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateSize_tObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMMCJITCompilerOptionsObject"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMMCJITCompilerOptionsObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMMCJITCompilerOptionsObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueAttributeRefObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueAttributeRefObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueAttributeRefObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueBasicBlockObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueBasicBlockObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueBasicBlockObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueExecutionEngineObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueExecutionEngineObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueExecutionEngineObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueGenericValueObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueGenericValueObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueGenericValueObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueMemoryBufferObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueMemoryBufferObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueMemoryBufferObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueMetadataObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueMetadataObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueMetadataObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueModuleObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueModuleObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueModuleObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueTypeObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueTypeObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueTypeObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueValueObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMOpaqueValueObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMOpaqueValueObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateLLVMTargetObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_allocateLLVMTargetObjectPointer"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateLLVMTargetObjectPointer",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateUint64_tObject"] :=
LLVMLibraryFunction["LLVMLink_allocateUint64_tObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateUint64_tObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateUint8_tObject"] :=
LLVMLibraryFunction["LLVMLink_allocateUint8_tObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateUint8_tObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_allocateUnsignedIntObject"] :=
LLVMLibraryFunction["LLVMLink_allocateUnsignedIntObject"] = (InstallLLVM[];LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_allocateUnsignedIntObject",
	{
		Integer
	},

	Integer
])

LLVMLibraryFunction["LLVMLink_deallocateCharObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateCharObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateCharObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateCharObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateCharObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateCharObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateConstCharObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateConstCharObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateConstCharObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateConstCharObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateConstCharObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateConstCharObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateConstUint64_tObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateConstUint64_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateConstUint64_tObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateIntObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateIntObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateIntObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateInt64_tObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateInt64_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateInt64_tObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueModuleFlagEntryObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueModuleFlagEntryObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueModuleFlagEntryObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateSize_tObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateSize_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateSize_tObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMMCJITCompilerOptionsObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMMCJITCompilerOptionsObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMMCJITCompilerOptionsObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueAttributeRefObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueAttributeRefObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueAttributeRefObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueBasicBlockObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueBasicBlockObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueBasicBlockObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueExecutionEngineObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueExecutionEngineObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueExecutionEngineObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueGenericValueObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueGenericValueObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueGenericValueObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueMemoryBufferObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueMemoryBufferObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueMemoryBufferObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueMetadataObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueMetadataObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueMetadataObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueModuleObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueModuleObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueModuleObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueTypeObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueTypeObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueTypeObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueValueObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMOpaqueValueObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMOpaqueValueObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateLLVMTargetObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_deallocateLLVMTargetObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateLLVMTargetObjectPointer",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateUint64_tObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateUint64_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateUint64_tObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateUint8_tObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateUint8_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateUint8_tObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_deallocateUnsignedIntObject"] :=
LLVMLibraryFunction["LLVMLink_deallocateUnsignedIntObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_deallocateUnsignedIntObject",
	{
		Integer
	},

	"Void"
]

LLVMLibraryFunction["LLVMLink_getCharObject"] :=
LLVMLibraryFunction["LLVMLink_getCharObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getCharObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getCharObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getCharObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getCharObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	"UTF8String"
]

LLVMLibraryFunction["LLVMLink_getConstCharObject"] :=
LLVMLibraryFunction["LLVMLink_getConstCharObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getConstCharObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getConstCharObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getConstCharObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getConstCharObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	"UTF8String"
]

LLVMLibraryFunction["LLVMLink_getConstUint64_tObject"] :=
LLVMLibraryFunction["LLVMLink_getConstUint64_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getConstUint64_tObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getIntObject"] :=
LLVMLibraryFunction["LLVMLink_getIntObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getIntObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getInt64_tObject"] :=
LLVMLibraryFunction["LLVMLink_getInt64_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getInt64_tObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueModuleFlagEntryObject"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueModuleFlagEntryObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueModuleFlagEntryObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getSize_tObject"] :=
LLVMLibraryFunction["LLVMLink_getSize_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getSize_tObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMMCJITCompilerOptionsObject"] :=
LLVMLibraryFunction["LLVMLink_getLLVMMCJITCompilerOptionsObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMMCJITCompilerOptionsObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueAttributeRefObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueAttributeRefObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueAttributeRefObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueBasicBlockObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueBasicBlockObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueBasicBlockObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueExecutionEngineObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueExecutionEngineObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueExecutionEngineObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueGenericValueObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueGenericValueObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueGenericValueObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueMemoryBufferObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueMemoryBufferObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueMemoryBufferObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueMetadataObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueMetadataObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueMetadataObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueModuleObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueModuleObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueModuleObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueTypeObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueTypeObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueTypeObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMOpaqueValueObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMOpaqueValueObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMOpaqueValueObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getLLVMTargetObjectPointer"] :=
LLVMLibraryFunction["LLVMLink_getLLVMTargetObjectPointer"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getLLVMTargetObjectPointer",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getUint64_tObject"] :=
LLVMLibraryFunction["LLVMLink_getUint64_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getUint64_tObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getUint8_tObject"] :=
LLVMLibraryFunction["LLVMLink_getUint8_tObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getUint8_tObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getUnsignedIntObject"] :=
LLVMLibraryFunction["LLVMLink_getUnsignedIntObject"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getUnsignedIntObject",
	{
		Integer, (* pointer *)
		Integer (* index *)
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_getIntegerArray_Wrapper"] :=
LLVMLibraryFunction["LLVMLink_getIntegerArray_Wrapper"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_getIntegerArray_Wrapper",
	{
		{Integer, 1}
	},

	Integer
]

LLVMLibraryFunction["LLVMLink_fromIntegerArray_Wrapper"] :=
LLVMLibraryFunction["LLVMLink_fromIntegerArray_Wrapper"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_fromIntegerArray_Wrapper",
	{
		Integer,
		Integer
	},

	{Integer, 1}
]

LLVMLibraryFunction["LLVMLink_freeIntegerArray_Wrapper"] :=
LLVMLibraryFunction["LLVMLink_freeIntegerArray_Wrapper"] = LibraryFunctionLoad[LLVMLibraryName[],
	"LLVMLink_freeIntegerArray_Wrapper",
	{
		Integer
	},

	Integer
]
