# mypy: disable-error-code="empty-body"
from __future__ import annotations
import ctypes
from typing import Annotated, Literal, TypeAlias
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
from tinygrad.runtime.support import c
from tinygrad.helpers import WIN, OSX
dll = c.DLL('llvm', 'C:\\Program Files\\LLVM\\bin\\LLVM-C.dll' if WIN else '/opt/homebrew/opt/llvm@20/lib/libLLVM.dylib' if OSX else ['LLVM', 'LLVM-21', 'LLVM-20', 'LLVM-19', 'LLVM-18', 'LLVM-17', 'LLVM-16', 'LLVM-15', 'LLVM-14'])
intmax_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
def imaxabs(__n:intmax_t) -> intmax_t: ...
@c.record
class imaxdiv_t(c.Struct):
  SIZE = 16
  quot: Annotated[Annotated[int, ctypes.c_int64], 0]
  rem: Annotated[Annotated[int, ctypes.c_int64], 8]
@dll.bind
def imaxdiv(__numer:intmax_t, __denom:intmax_t) -> imaxdiv_t: ...
@dll.bind
def strtoimax(__nptr:c.POINTER[Annotated[bytes, ctypes.c_char]], __endptr:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], __base:Annotated[int, ctypes.c_int32]) -> intmax_t: ...
uintmax_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
def strtoumax(__nptr:c.POINTER[Annotated[bytes, ctypes.c_char]], __endptr:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], __base:Annotated[int, ctypes.c_int32]) -> uintmax_t: ...
__gwchar_t: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
def wcstoimax(__nptr:c.POINTER[Annotated[int, ctypes.c_int32]], __endptr:c.POINTER[c.POINTER[Annotated[int, ctypes.c_int32]]], __base:Annotated[int, ctypes.c_int32]) -> intmax_t: ...
@dll.bind
def wcstoumax(__nptr:c.POINTER[Annotated[int, ctypes.c_int32]], __endptr:c.POINTER[c.POINTER[Annotated[int, ctypes.c_int32]]], __base:Annotated[int, ctypes.c_int32]) -> uintmax_t: ...
@c.record
class fd_set(c.Struct):
  SIZE = 128
  fds_bits: Annotated[c.Array[Annotated[int, ctypes.c_int64], Literal[16]], 0]
__fd_mask: TypeAlias = Annotated[int, ctypes.c_int64]
@c.record
class struct_timeval(c.Struct):
  SIZE = 16
  tv_sec: Annotated[Annotated[int, ctypes.c_int64], 0]
  tv_usec: Annotated[Annotated[int, ctypes.c_int64], 8]
__time_t: TypeAlias = Annotated[int, ctypes.c_int64]
__suseconds_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
def select(__nfds:Annotated[int, ctypes.c_int32], __readfds:c.POINTER[fd_set], __writefds:c.POINTER[fd_set], __exceptfds:c.POINTER[fd_set], __timeout:c.POINTER[struct_timeval]) -> Annotated[int, ctypes.c_int32]: ...
@c.record
class struct_timespec(c.Struct):
  SIZE = 16
  tv_sec: Annotated[Annotated[int, ctypes.c_int64], 0]
  tv_nsec: Annotated[Annotated[int, ctypes.c_int64], 8]
__syscall_slong_t: TypeAlias = Annotated[int, ctypes.c_int64]
@c.record
class __sigset_t(c.Struct):
  SIZE = 128
  __val: Annotated[c.Array[Annotated[int, ctypes.c_uint64], Literal[16]], 0]
@dll.bind
def pselect(__nfds:Annotated[int, ctypes.c_int32], __readfds:c.POINTER[fd_set], __writefds:c.POINTER[fd_set], __exceptfds:c.POINTER[fd_set], __timeout:c.POINTER[struct_timespec], __sigmask:c.POINTER[__sigset_t]) -> Annotated[int, ctypes.c_int32]: ...
class LLVMVerifierFailureAction(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMAbortProcessAction = LLVMVerifierFailureAction.define('LLVMAbortProcessAction', 0)
LLVMPrintMessageAction = LLVMVerifierFailureAction.define('LLVMPrintMessageAction', 1)
LLVMReturnStatusAction = LLVMVerifierFailureAction.define('LLVMReturnStatusAction', 2)

class struct_LLVMOpaqueModule(ctypes.Structure): pass
LLVMModuleRef: TypeAlias = c.POINTER[struct_LLVMOpaqueModule]
LLVMBool: TypeAlias = Annotated[int, ctypes.c_int32]
@dll.bind
def LLVMVerifyModule(M:LLVMModuleRef, Action:LLVMVerifierFailureAction, OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
class struct_LLVMOpaqueValue(ctypes.Structure): pass
LLVMValueRef: TypeAlias = c.POINTER[struct_LLVMOpaqueValue]
@dll.bind
def LLVMVerifyFunction(Fn:LLVMValueRef, Action:LLVMVerifierFailureAction) -> LLVMBool: ...
@dll.bind
def LLVMViewFunctionCFG(Fn:LLVMValueRef) -> None: ...
@dll.bind
def LLVMViewFunctionCFGOnly(Fn:LLVMValueRef) -> None: ...
class struct_LLVMOpaqueMemoryBuffer(ctypes.Structure): pass
LLVMMemoryBufferRef: TypeAlias = c.POINTER[struct_LLVMOpaqueMemoryBuffer]
@dll.bind
def LLVMParseBitcode(MemBuf:LLVMMemoryBufferRef, OutModule:c.POINTER[LLVMModuleRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMParseBitcode2(MemBuf:LLVMMemoryBufferRef, OutModule:c.POINTER[LLVMModuleRef]) -> LLVMBool: ...
class struct_LLVMOpaqueContext(ctypes.Structure): pass
LLVMContextRef: TypeAlias = c.POINTER[struct_LLVMOpaqueContext]
@dll.bind
def LLVMParseBitcodeInContext(ContextRef:LLVMContextRef, MemBuf:LLVMMemoryBufferRef, OutModule:c.POINTER[LLVMModuleRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMParseBitcodeInContext2(ContextRef:LLVMContextRef, MemBuf:LLVMMemoryBufferRef, OutModule:c.POINTER[LLVMModuleRef]) -> LLVMBool: ...
@dll.bind
def LLVMGetBitcodeModuleInContext(ContextRef:LLVMContextRef, MemBuf:LLVMMemoryBufferRef, OutM:c.POINTER[LLVMModuleRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMGetBitcodeModuleInContext2(ContextRef:LLVMContextRef, MemBuf:LLVMMemoryBufferRef, OutM:c.POINTER[LLVMModuleRef]) -> LLVMBool: ...
@dll.bind
def LLVMGetBitcodeModule(MemBuf:LLVMMemoryBufferRef, OutM:c.POINTER[LLVMModuleRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMGetBitcodeModule2(MemBuf:LLVMMemoryBufferRef, OutM:c.POINTER[LLVMModuleRef]) -> LLVMBool: ...
@dll.bind
def LLVMWriteBitcodeToFile(M:LLVMModuleRef, Path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMWriteBitcodeToFD(M:LLVMModuleRef, FD:Annotated[int, ctypes.c_int32], ShouldClose:Annotated[int, ctypes.c_int32], Unbuffered:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMWriteBitcodeToFileHandle(M:LLVMModuleRef, Handle:Annotated[int, ctypes.c_int32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMWriteBitcodeToMemoryBuffer(M:LLVMModuleRef) -> LLVMMemoryBufferRef: ...
class LLVMComdatSelectionKind(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMAnyComdatSelectionKind = LLVMComdatSelectionKind.define('LLVMAnyComdatSelectionKind', 0)
LLVMExactMatchComdatSelectionKind = LLVMComdatSelectionKind.define('LLVMExactMatchComdatSelectionKind', 1)
LLVMLargestComdatSelectionKind = LLVMComdatSelectionKind.define('LLVMLargestComdatSelectionKind', 2)
LLVMNoDeduplicateComdatSelectionKind = LLVMComdatSelectionKind.define('LLVMNoDeduplicateComdatSelectionKind', 3)
LLVMSameSizeComdatSelectionKind = LLVMComdatSelectionKind.define('LLVMSameSizeComdatSelectionKind', 4)

class struct_LLVMComdat(ctypes.Structure): pass
LLVMComdatRef: TypeAlias = c.POINTER[struct_LLVMComdat]
@dll.bind
def LLVMGetOrInsertComdat(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMComdatRef: ...
@dll.bind
def LLVMGetComdat(V:LLVMValueRef) -> LLVMComdatRef: ...
@dll.bind
def LLVMSetComdat(V:LLVMValueRef, C:LLVMComdatRef) -> None: ...
@dll.bind
def LLVMGetComdatSelectionKind(C:LLVMComdatRef) -> LLVMComdatSelectionKind: ...
@dll.bind
def LLVMSetComdatSelectionKind(C:LLVMComdatRef, Kind:LLVMComdatSelectionKind) -> None: ...
LLVMFatalErrorHandler: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[Annotated[bytes, ctypes.c_char]]]]
@dll.bind
def LLVMInstallFatalErrorHandler(Handler:LLVMFatalErrorHandler) -> None: ...
@dll.bind
def LLVMResetFatalErrorHandler() -> None: ...
@dll.bind
def LLVMEnablePrettyStackTrace() -> None: ...
class LLVMOpcode(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMRet = LLVMOpcode.define('LLVMRet', 1)
LLVMBr = LLVMOpcode.define('LLVMBr', 2)
LLVMSwitch = LLVMOpcode.define('LLVMSwitch', 3)
LLVMIndirectBr = LLVMOpcode.define('LLVMIndirectBr', 4)
LLVMInvoke = LLVMOpcode.define('LLVMInvoke', 5)
LLVMUnreachable = LLVMOpcode.define('LLVMUnreachable', 7)
LLVMCallBr = LLVMOpcode.define('LLVMCallBr', 67)
LLVMFNeg = LLVMOpcode.define('LLVMFNeg', 66)
LLVMAdd = LLVMOpcode.define('LLVMAdd', 8)
LLVMFAdd = LLVMOpcode.define('LLVMFAdd', 9)
LLVMSub = LLVMOpcode.define('LLVMSub', 10)
LLVMFSub = LLVMOpcode.define('LLVMFSub', 11)
LLVMMul = LLVMOpcode.define('LLVMMul', 12)
LLVMFMul = LLVMOpcode.define('LLVMFMul', 13)
LLVMUDiv = LLVMOpcode.define('LLVMUDiv', 14)
LLVMSDiv = LLVMOpcode.define('LLVMSDiv', 15)
LLVMFDiv = LLVMOpcode.define('LLVMFDiv', 16)
LLVMURem = LLVMOpcode.define('LLVMURem', 17)
LLVMSRem = LLVMOpcode.define('LLVMSRem', 18)
LLVMFRem = LLVMOpcode.define('LLVMFRem', 19)
LLVMShl = LLVMOpcode.define('LLVMShl', 20)
LLVMLShr = LLVMOpcode.define('LLVMLShr', 21)
LLVMAShr = LLVMOpcode.define('LLVMAShr', 22)
LLVMAnd = LLVMOpcode.define('LLVMAnd', 23)
LLVMOr = LLVMOpcode.define('LLVMOr', 24)
LLVMXor = LLVMOpcode.define('LLVMXor', 25)
LLVMAlloca = LLVMOpcode.define('LLVMAlloca', 26)
LLVMLoad = LLVMOpcode.define('LLVMLoad', 27)
LLVMStore = LLVMOpcode.define('LLVMStore', 28)
LLVMGetElementPtr = LLVMOpcode.define('LLVMGetElementPtr', 29)
LLVMTrunc = LLVMOpcode.define('LLVMTrunc', 30)
LLVMZExt = LLVMOpcode.define('LLVMZExt', 31)
LLVMSExt = LLVMOpcode.define('LLVMSExt', 32)
LLVMFPToUI = LLVMOpcode.define('LLVMFPToUI', 33)
LLVMFPToSI = LLVMOpcode.define('LLVMFPToSI', 34)
LLVMUIToFP = LLVMOpcode.define('LLVMUIToFP', 35)
LLVMSIToFP = LLVMOpcode.define('LLVMSIToFP', 36)
LLVMFPTrunc = LLVMOpcode.define('LLVMFPTrunc', 37)
LLVMFPExt = LLVMOpcode.define('LLVMFPExt', 38)
LLVMPtrToInt = LLVMOpcode.define('LLVMPtrToInt', 39)
LLVMIntToPtr = LLVMOpcode.define('LLVMIntToPtr', 40)
LLVMBitCast = LLVMOpcode.define('LLVMBitCast', 41)
LLVMAddrSpaceCast = LLVMOpcode.define('LLVMAddrSpaceCast', 60)
LLVMICmp = LLVMOpcode.define('LLVMICmp', 42)
LLVMFCmp = LLVMOpcode.define('LLVMFCmp', 43)
LLVMPHI = LLVMOpcode.define('LLVMPHI', 44)
LLVMCall = LLVMOpcode.define('LLVMCall', 45)
LLVMSelect = LLVMOpcode.define('LLVMSelect', 46)
LLVMUserOp1 = LLVMOpcode.define('LLVMUserOp1', 47)
LLVMUserOp2 = LLVMOpcode.define('LLVMUserOp2', 48)
LLVMVAArg = LLVMOpcode.define('LLVMVAArg', 49)
LLVMExtractElement = LLVMOpcode.define('LLVMExtractElement', 50)
LLVMInsertElement = LLVMOpcode.define('LLVMInsertElement', 51)
LLVMShuffleVector = LLVMOpcode.define('LLVMShuffleVector', 52)
LLVMExtractValue = LLVMOpcode.define('LLVMExtractValue', 53)
LLVMInsertValue = LLVMOpcode.define('LLVMInsertValue', 54)
LLVMFreeze = LLVMOpcode.define('LLVMFreeze', 68)
LLVMFence = LLVMOpcode.define('LLVMFence', 55)
LLVMAtomicCmpXchg = LLVMOpcode.define('LLVMAtomicCmpXchg', 56)
LLVMAtomicRMW = LLVMOpcode.define('LLVMAtomicRMW', 57)
LLVMResume = LLVMOpcode.define('LLVMResume', 58)
LLVMLandingPad = LLVMOpcode.define('LLVMLandingPad', 59)
LLVMCleanupRet = LLVMOpcode.define('LLVMCleanupRet', 61)
LLVMCatchRet = LLVMOpcode.define('LLVMCatchRet', 62)
LLVMCatchPad = LLVMOpcode.define('LLVMCatchPad', 63)
LLVMCleanupPad = LLVMOpcode.define('LLVMCleanupPad', 64)
LLVMCatchSwitch = LLVMOpcode.define('LLVMCatchSwitch', 65)

class LLVMTypeKind(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMVoidTypeKind = LLVMTypeKind.define('LLVMVoidTypeKind', 0)
LLVMHalfTypeKind = LLVMTypeKind.define('LLVMHalfTypeKind', 1)
LLVMFloatTypeKind = LLVMTypeKind.define('LLVMFloatTypeKind', 2)
LLVMDoubleTypeKind = LLVMTypeKind.define('LLVMDoubleTypeKind', 3)
LLVMX86_FP80TypeKind = LLVMTypeKind.define('LLVMX86_FP80TypeKind', 4)
LLVMFP128TypeKind = LLVMTypeKind.define('LLVMFP128TypeKind', 5)
LLVMPPC_FP128TypeKind = LLVMTypeKind.define('LLVMPPC_FP128TypeKind', 6)
LLVMLabelTypeKind = LLVMTypeKind.define('LLVMLabelTypeKind', 7)
LLVMIntegerTypeKind = LLVMTypeKind.define('LLVMIntegerTypeKind', 8)
LLVMFunctionTypeKind = LLVMTypeKind.define('LLVMFunctionTypeKind', 9)
LLVMStructTypeKind = LLVMTypeKind.define('LLVMStructTypeKind', 10)
LLVMArrayTypeKind = LLVMTypeKind.define('LLVMArrayTypeKind', 11)
LLVMPointerTypeKind = LLVMTypeKind.define('LLVMPointerTypeKind', 12)
LLVMVectorTypeKind = LLVMTypeKind.define('LLVMVectorTypeKind', 13)
LLVMMetadataTypeKind = LLVMTypeKind.define('LLVMMetadataTypeKind', 14)
LLVMTokenTypeKind = LLVMTypeKind.define('LLVMTokenTypeKind', 16)
LLVMScalableVectorTypeKind = LLVMTypeKind.define('LLVMScalableVectorTypeKind', 17)
LLVMBFloatTypeKind = LLVMTypeKind.define('LLVMBFloatTypeKind', 18)
LLVMX86_AMXTypeKind = LLVMTypeKind.define('LLVMX86_AMXTypeKind', 19)
LLVMTargetExtTypeKind = LLVMTypeKind.define('LLVMTargetExtTypeKind', 20)

class LLVMLinkage(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMExternalLinkage = LLVMLinkage.define('LLVMExternalLinkage', 0)
LLVMAvailableExternallyLinkage = LLVMLinkage.define('LLVMAvailableExternallyLinkage', 1)
LLVMLinkOnceAnyLinkage = LLVMLinkage.define('LLVMLinkOnceAnyLinkage', 2)
LLVMLinkOnceODRLinkage = LLVMLinkage.define('LLVMLinkOnceODRLinkage', 3)
LLVMLinkOnceODRAutoHideLinkage = LLVMLinkage.define('LLVMLinkOnceODRAutoHideLinkage', 4)
LLVMWeakAnyLinkage = LLVMLinkage.define('LLVMWeakAnyLinkage', 5)
LLVMWeakODRLinkage = LLVMLinkage.define('LLVMWeakODRLinkage', 6)
LLVMAppendingLinkage = LLVMLinkage.define('LLVMAppendingLinkage', 7)
LLVMInternalLinkage = LLVMLinkage.define('LLVMInternalLinkage', 8)
LLVMPrivateLinkage = LLVMLinkage.define('LLVMPrivateLinkage', 9)
LLVMDLLImportLinkage = LLVMLinkage.define('LLVMDLLImportLinkage', 10)
LLVMDLLExportLinkage = LLVMLinkage.define('LLVMDLLExportLinkage', 11)
LLVMExternalWeakLinkage = LLVMLinkage.define('LLVMExternalWeakLinkage', 12)
LLVMGhostLinkage = LLVMLinkage.define('LLVMGhostLinkage', 13)
LLVMCommonLinkage = LLVMLinkage.define('LLVMCommonLinkage', 14)
LLVMLinkerPrivateLinkage = LLVMLinkage.define('LLVMLinkerPrivateLinkage', 15)
LLVMLinkerPrivateWeakLinkage = LLVMLinkage.define('LLVMLinkerPrivateWeakLinkage', 16)

class LLVMVisibility(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDefaultVisibility = LLVMVisibility.define('LLVMDefaultVisibility', 0)
LLVMHiddenVisibility = LLVMVisibility.define('LLVMHiddenVisibility', 1)
LLVMProtectedVisibility = LLVMVisibility.define('LLVMProtectedVisibility', 2)

class LLVMUnnamedAddr(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMNoUnnamedAddr = LLVMUnnamedAddr.define('LLVMNoUnnamedAddr', 0)
LLVMLocalUnnamedAddr = LLVMUnnamedAddr.define('LLVMLocalUnnamedAddr', 1)
LLVMGlobalUnnamedAddr = LLVMUnnamedAddr.define('LLVMGlobalUnnamedAddr', 2)

class LLVMDLLStorageClass(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDefaultStorageClass = LLVMDLLStorageClass.define('LLVMDefaultStorageClass', 0)
LLVMDLLImportStorageClass = LLVMDLLStorageClass.define('LLVMDLLImportStorageClass', 1)
LLVMDLLExportStorageClass = LLVMDLLStorageClass.define('LLVMDLLExportStorageClass', 2)

class LLVMCallConv(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMCCallConv = LLVMCallConv.define('LLVMCCallConv', 0)
LLVMFastCallConv = LLVMCallConv.define('LLVMFastCallConv', 8)
LLVMColdCallConv = LLVMCallConv.define('LLVMColdCallConv', 9)
LLVMGHCCallConv = LLVMCallConv.define('LLVMGHCCallConv', 10)
LLVMHiPECallConv = LLVMCallConv.define('LLVMHiPECallConv', 11)
LLVMAnyRegCallConv = LLVMCallConv.define('LLVMAnyRegCallConv', 13)
LLVMPreserveMostCallConv = LLVMCallConv.define('LLVMPreserveMostCallConv', 14)
LLVMPreserveAllCallConv = LLVMCallConv.define('LLVMPreserveAllCallConv', 15)
LLVMSwiftCallConv = LLVMCallConv.define('LLVMSwiftCallConv', 16)
LLVMCXXFASTTLSCallConv = LLVMCallConv.define('LLVMCXXFASTTLSCallConv', 17)
LLVMX86StdcallCallConv = LLVMCallConv.define('LLVMX86StdcallCallConv', 64)
LLVMX86FastcallCallConv = LLVMCallConv.define('LLVMX86FastcallCallConv', 65)
LLVMARMAPCSCallConv = LLVMCallConv.define('LLVMARMAPCSCallConv', 66)
LLVMARMAAPCSCallConv = LLVMCallConv.define('LLVMARMAAPCSCallConv', 67)
LLVMARMAAPCSVFPCallConv = LLVMCallConv.define('LLVMARMAAPCSVFPCallConv', 68)
LLVMMSP430INTRCallConv = LLVMCallConv.define('LLVMMSP430INTRCallConv', 69)
LLVMX86ThisCallCallConv = LLVMCallConv.define('LLVMX86ThisCallCallConv', 70)
LLVMPTXKernelCallConv = LLVMCallConv.define('LLVMPTXKernelCallConv', 71)
LLVMPTXDeviceCallConv = LLVMCallConv.define('LLVMPTXDeviceCallConv', 72)
LLVMSPIRFUNCCallConv = LLVMCallConv.define('LLVMSPIRFUNCCallConv', 75)
LLVMSPIRKERNELCallConv = LLVMCallConv.define('LLVMSPIRKERNELCallConv', 76)
LLVMIntelOCLBICallConv = LLVMCallConv.define('LLVMIntelOCLBICallConv', 77)
LLVMX8664SysVCallConv = LLVMCallConv.define('LLVMX8664SysVCallConv', 78)
LLVMWin64CallConv = LLVMCallConv.define('LLVMWin64CallConv', 79)
LLVMX86VectorCallCallConv = LLVMCallConv.define('LLVMX86VectorCallCallConv', 80)
LLVMHHVMCallConv = LLVMCallConv.define('LLVMHHVMCallConv', 81)
LLVMHHVMCCallConv = LLVMCallConv.define('LLVMHHVMCCallConv', 82)
LLVMX86INTRCallConv = LLVMCallConv.define('LLVMX86INTRCallConv', 83)
LLVMAVRINTRCallConv = LLVMCallConv.define('LLVMAVRINTRCallConv', 84)
LLVMAVRSIGNALCallConv = LLVMCallConv.define('LLVMAVRSIGNALCallConv', 85)
LLVMAVRBUILTINCallConv = LLVMCallConv.define('LLVMAVRBUILTINCallConv', 86)
LLVMAMDGPUVSCallConv = LLVMCallConv.define('LLVMAMDGPUVSCallConv', 87)
LLVMAMDGPUGSCallConv = LLVMCallConv.define('LLVMAMDGPUGSCallConv', 88)
LLVMAMDGPUPSCallConv = LLVMCallConv.define('LLVMAMDGPUPSCallConv', 89)
LLVMAMDGPUCSCallConv = LLVMCallConv.define('LLVMAMDGPUCSCallConv', 90)
LLVMAMDGPUKERNELCallConv = LLVMCallConv.define('LLVMAMDGPUKERNELCallConv', 91)
LLVMX86RegCallCallConv = LLVMCallConv.define('LLVMX86RegCallCallConv', 92)
LLVMAMDGPUHSCallConv = LLVMCallConv.define('LLVMAMDGPUHSCallConv', 93)
LLVMMSP430BUILTINCallConv = LLVMCallConv.define('LLVMMSP430BUILTINCallConv', 94)
LLVMAMDGPULSCallConv = LLVMCallConv.define('LLVMAMDGPULSCallConv', 95)
LLVMAMDGPUESCallConv = LLVMCallConv.define('LLVMAMDGPUESCallConv', 96)

class LLVMValueKind(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMArgumentValueKind = LLVMValueKind.define('LLVMArgumentValueKind', 0)
LLVMBasicBlockValueKind = LLVMValueKind.define('LLVMBasicBlockValueKind', 1)
LLVMMemoryUseValueKind = LLVMValueKind.define('LLVMMemoryUseValueKind', 2)
LLVMMemoryDefValueKind = LLVMValueKind.define('LLVMMemoryDefValueKind', 3)
LLVMMemoryPhiValueKind = LLVMValueKind.define('LLVMMemoryPhiValueKind', 4)
LLVMFunctionValueKind = LLVMValueKind.define('LLVMFunctionValueKind', 5)
LLVMGlobalAliasValueKind = LLVMValueKind.define('LLVMGlobalAliasValueKind', 6)
LLVMGlobalIFuncValueKind = LLVMValueKind.define('LLVMGlobalIFuncValueKind', 7)
LLVMGlobalVariableValueKind = LLVMValueKind.define('LLVMGlobalVariableValueKind', 8)
LLVMBlockAddressValueKind = LLVMValueKind.define('LLVMBlockAddressValueKind', 9)
LLVMConstantExprValueKind = LLVMValueKind.define('LLVMConstantExprValueKind', 10)
LLVMConstantArrayValueKind = LLVMValueKind.define('LLVMConstantArrayValueKind', 11)
LLVMConstantStructValueKind = LLVMValueKind.define('LLVMConstantStructValueKind', 12)
LLVMConstantVectorValueKind = LLVMValueKind.define('LLVMConstantVectorValueKind', 13)
LLVMUndefValueValueKind = LLVMValueKind.define('LLVMUndefValueValueKind', 14)
LLVMConstantAggregateZeroValueKind = LLVMValueKind.define('LLVMConstantAggregateZeroValueKind', 15)
LLVMConstantDataArrayValueKind = LLVMValueKind.define('LLVMConstantDataArrayValueKind', 16)
LLVMConstantDataVectorValueKind = LLVMValueKind.define('LLVMConstantDataVectorValueKind', 17)
LLVMConstantIntValueKind = LLVMValueKind.define('LLVMConstantIntValueKind', 18)
LLVMConstantFPValueKind = LLVMValueKind.define('LLVMConstantFPValueKind', 19)
LLVMConstantPointerNullValueKind = LLVMValueKind.define('LLVMConstantPointerNullValueKind', 20)
LLVMConstantTokenNoneValueKind = LLVMValueKind.define('LLVMConstantTokenNoneValueKind', 21)
LLVMMetadataAsValueValueKind = LLVMValueKind.define('LLVMMetadataAsValueValueKind', 22)
LLVMInlineAsmValueKind = LLVMValueKind.define('LLVMInlineAsmValueKind', 23)
LLVMInstructionValueKind = LLVMValueKind.define('LLVMInstructionValueKind', 24)
LLVMPoisonValueValueKind = LLVMValueKind.define('LLVMPoisonValueValueKind', 25)
LLVMConstantTargetNoneValueKind = LLVMValueKind.define('LLVMConstantTargetNoneValueKind', 26)
LLVMConstantPtrAuthValueKind = LLVMValueKind.define('LLVMConstantPtrAuthValueKind', 27)

class LLVMIntPredicate(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMIntEQ = LLVMIntPredicate.define('LLVMIntEQ', 32)
LLVMIntNE = LLVMIntPredicate.define('LLVMIntNE', 33)
LLVMIntUGT = LLVMIntPredicate.define('LLVMIntUGT', 34)
LLVMIntUGE = LLVMIntPredicate.define('LLVMIntUGE', 35)
LLVMIntULT = LLVMIntPredicate.define('LLVMIntULT', 36)
LLVMIntULE = LLVMIntPredicate.define('LLVMIntULE', 37)
LLVMIntSGT = LLVMIntPredicate.define('LLVMIntSGT', 38)
LLVMIntSGE = LLVMIntPredicate.define('LLVMIntSGE', 39)
LLVMIntSLT = LLVMIntPredicate.define('LLVMIntSLT', 40)
LLVMIntSLE = LLVMIntPredicate.define('LLVMIntSLE', 41)

class LLVMRealPredicate(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMRealPredicateFalse = LLVMRealPredicate.define('LLVMRealPredicateFalse', 0)
LLVMRealOEQ = LLVMRealPredicate.define('LLVMRealOEQ', 1)
LLVMRealOGT = LLVMRealPredicate.define('LLVMRealOGT', 2)
LLVMRealOGE = LLVMRealPredicate.define('LLVMRealOGE', 3)
LLVMRealOLT = LLVMRealPredicate.define('LLVMRealOLT', 4)
LLVMRealOLE = LLVMRealPredicate.define('LLVMRealOLE', 5)
LLVMRealONE = LLVMRealPredicate.define('LLVMRealONE', 6)
LLVMRealORD = LLVMRealPredicate.define('LLVMRealORD', 7)
LLVMRealUNO = LLVMRealPredicate.define('LLVMRealUNO', 8)
LLVMRealUEQ = LLVMRealPredicate.define('LLVMRealUEQ', 9)
LLVMRealUGT = LLVMRealPredicate.define('LLVMRealUGT', 10)
LLVMRealUGE = LLVMRealPredicate.define('LLVMRealUGE', 11)
LLVMRealULT = LLVMRealPredicate.define('LLVMRealULT', 12)
LLVMRealULE = LLVMRealPredicate.define('LLVMRealULE', 13)
LLVMRealUNE = LLVMRealPredicate.define('LLVMRealUNE', 14)
LLVMRealPredicateTrue = LLVMRealPredicate.define('LLVMRealPredicateTrue', 15)

class LLVMLandingPadClauseTy(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMLandingPadCatch = LLVMLandingPadClauseTy.define('LLVMLandingPadCatch', 0)
LLVMLandingPadFilter = LLVMLandingPadClauseTy.define('LLVMLandingPadFilter', 1)

class LLVMThreadLocalMode(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMNotThreadLocal = LLVMThreadLocalMode.define('LLVMNotThreadLocal', 0)
LLVMGeneralDynamicTLSModel = LLVMThreadLocalMode.define('LLVMGeneralDynamicTLSModel', 1)
LLVMLocalDynamicTLSModel = LLVMThreadLocalMode.define('LLVMLocalDynamicTLSModel', 2)
LLVMInitialExecTLSModel = LLVMThreadLocalMode.define('LLVMInitialExecTLSModel', 3)
LLVMLocalExecTLSModel = LLVMThreadLocalMode.define('LLVMLocalExecTLSModel', 4)

class LLVMAtomicOrdering(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMAtomicOrderingNotAtomic = LLVMAtomicOrdering.define('LLVMAtomicOrderingNotAtomic', 0)
LLVMAtomicOrderingUnordered = LLVMAtomicOrdering.define('LLVMAtomicOrderingUnordered', 1)
LLVMAtomicOrderingMonotonic = LLVMAtomicOrdering.define('LLVMAtomicOrderingMonotonic', 2)
LLVMAtomicOrderingAcquire = LLVMAtomicOrdering.define('LLVMAtomicOrderingAcquire', 4)
LLVMAtomicOrderingRelease = LLVMAtomicOrdering.define('LLVMAtomicOrderingRelease', 5)
LLVMAtomicOrderingAcquireRelease = LLVMAtomicOrdering.define('LLVMAtomicOrderingAcquireRelease', 6)
LLVMAtomicOrderingSequentiallyConsistent = LLVMAtomicOrdering.define('LLVMAtomicOrderingSequentiallyConsistent', 7)

class LLVMAtomicRMWBinOp(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMAtomicRMWBinOpXchg = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpXchg', 0)
LLVMAtomicRMWBinOpAdd = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpAdd', 1)
LLVMAtomicRMWBinOpSub = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpSub', 2)
LLVMAtomicRMWBinOpAnd = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpAnd', 3)
LLVMAtomicRMWBinOpNand = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpNand', 4)
LLVMAtomicRMWBinOpOr = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpOr', 5)
LLVMAtomicRMWBinOpXor = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpXor', 6)
LLVMAtomicRMWBinOpMax = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpMax', 7)
LLVMAtomicRMWBinOpMin = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpMin', 8)
LLVMAtomicRMWBinOpUMax = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpUMax', 9)
LLVMAtomicRMWBinOpUMin = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpUMin', 10)
LLVMAtomicRMWBinOpFAdd = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpFAdd', 11)
LLVMAtomicRMWBinOpFSub = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpFSub', 12)
LLVMAtomicRMWBinOpFMax = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpFMax', 13)
LLVMAtomicRMWBinOpFMin = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpFMin', 14)
LLVMAtomicRMWBinOpUIncWrap = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpUIncWrap', 15)
LLVMAtomicRMWBinOpUDecWrap = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpUDecWrap', 16)
LLVMAtomicRMWBinOpUSubCond = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpUSubCond', 17)
LLVMAtomicRMWBinOpUSubSat = LLVMAtomicRMWBinOp.define('LLVMAtomicRMWBinOpUSubSat', 18)

class LLVMDiagnosticSeverity(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDSError = LLVMDiagnosticSeverity.define('LLVMDSError', 0)
LLVMDSWarning = LLVMDiagnosticSeverity.define('LLVMDSWarning', 1)
LLVMDSRemark = LLVMDiagnosticSeverity.define('LLVMDSRemark', 2)
LLVMDSNote = LLVMDiagnosticSeverity.define('LLVMDSNote', 3)

class LLVMInlineAsmDialect(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMInlineAsmDialectATT = LLVMInlineAsmDialect.define('LLVMInlineAsmDialectATT', 0)
LLVMInlineAsmDialectIntel = LLVMInlineAsmDialect.define('LLVMInlineAsmDialectIntel', 1)

class LLVMModuleFlagBehavior(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMModuleFlagBehaviorError = LLVMModuleFlagBehavior.define('LLVMModuleFlagBehaviorError', 0)
LLVMModuleFlagBehaviorWarning = LLVMModuleFlagBehavior.define('LLVMModuleFlagBehaviorWarning', 1)
LLVMModuleFlagBehaviorRequire = LLVMModuleFlagBehavior.define('LLVMModuleFlagBehaviorRequire', 2)
LLVMModuleFlagBehaviorOverride = LLVMModuleFlagBehavior.define('LLVMModuleFlagBehaviorOverride', 3)
LLVMModuleFlagBehaviorAppend = LLVMModuleFlagBehavior.define('LLVMModuleFlagBehaviorAppend', 4)
LLVMModuleFlagBehaviorAppendUnique = LLVMModuleFlagBehavior.define('LLVMModuleFlagBehaviorAppendUnique', 5)

class _anonenum0(Annotated[int, ctypes.c_int32], c.Enum): pass
LLVMAttributeReturnIndex = _anonenum0.define('LLVMAttributeReturnIndex', 0)
LLVMAttributeFunctionIndex = _anonenum0.define('LLVMAttributeFunctionIndex', -1)

LLVMAttributeIndex: TypeAlias = Annotated[int, ctypes.c_uint32]
class LLVMTailCallKind(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMTailCallKindNone = LLVMTailCallKind.define('LLVMTailCallKindNone', 0)
LLVMTailCallKindTail = LLVMTailCallKind.define('LLVMTailCallKindTail', 1)
LLVMTailCallKindMustTail = LLVMTailCallKind.define('LLVMTailCallKindMustTail', 2)
LLVMTailCallKindNoTail = LLVMTailCallKind.define('LLVMTailCallKindNoTail', 3)

class _anonenum1(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMFastMathAllowReassoc = _anonenum1.define('LLVMFastMathAllowReassoc', 1)
LLVMFastMathNoNaNs = _anonenum1.define('LLVMFastMathNoNaNs', 2)
LLVMFastMathNoInfs = _anonenum1.define('LLVMFastMathNoInfs', 4)
LLVMFastMathNoSignedZeros = _anonenum1.define('LLVMFastMathNoSignedZeros', 8)
LLVMFastMathAllowReciprocal = _anonenum1.define('LLVMFastMathAllowReciprocal', 16)
LLVMFastMathAllowContract = _anonenum1.define('LLVMFastMathAllowContract', 32)
LLVMFastMathApproxFunc = _anonenum1.define('LLVMFastMathApproxFunc', 64)
LLVMFastMathNone = _anonenum1.define('LLVMFastMathNone', 0)
LLVMFastMathAll = _anonenum1.define('LLVMFastMathAll', 127)

LLVMFastMathFlags: TypeAlias = Annotated[int, ctypes.c_uint32]
class _anonenum2(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMGEPFlagInBounds = _anonenum2.define('LLVMGEPFlagInBounds', 1)
LLVMGEPFlagNUSW = _anonenum2.define('LLVMGEPFlagNUSW', 2)
LLVMGEPFlagNUW = _anonenum2.define('LLVMGEPFlagNUW', 4)

LLVMGEPNoWrapFlags: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
def LLVMShutdown() -> None: ...
@dll.bind
def LLVMGetVersion(Major:c.POINTER[Annotated[int, ctypes.c_uint32]], Minor:c.POINTER[Annotated[int, ctypes.c_uint32]], Patch:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> None: ...
@dll.bind
def LLVMCreateMessage(Message:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMDisposeMessage(Message:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
class struct_LLVMOpaqueDiagnosticInfo(ctypes.Structure): pass
LLVMDiagnosticHandler: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[struct_LLVMOpaqueDiagnosticInfo], ctypes.c_void_p]]
LLVMYieldCallback: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[struct_LLVMOpaqueContext], ctypes.c_void_p]]
@dll.bind
def LLVMContextCreate() -> LLVMContextRef: ...
@dll.bind
def LLVMGetGlobalContext() -> LLVMContextRef: ...
@dll.bind
def LLVMContextSetDiagnosticHandler(C:LLVMContextRef, Handler:LLVMDiagnosticHandler, DiagnosticContext:ctypes.c_void_p) -> None: ...
@dll.bind
def LLVMContextGetDiagnosticHandler(C:LLVMContextRef) -> LLVMDiagnosticHandler: ...
@dll.bind
def LLVMContextGetDiagnosticContext(C:LLVMContextRef) -> ctypes.c_void_p: ...
@dll.bind
def LLVMContextSetYieldCallback(C:LLVMContextRef, Callback:LLVMYieldCallback, OpaqueHandle:ctypes.c_void_p) -> None: ...
@dll.bind
def LLVMContextShouldDiscardValueNames(C:LLVMContextRef) -> LLVMBool: ...
@dll.bind
def LLVMContextSetDiscardValueNames(C:LLVMContextRef, Discard:LLVMBool) -> None: ...
@dll.bind
def LLVMContextDispose(C:LLVMContextRef) -> None: ...
LLVMDiagnosticInfoRef: TypeAlias = c.POINTER[struct_LLVMOpaqueDiagnosticInfo]
@dll.bind
def LLVMGetDiagInfoDescription(DI:LLVMDiagnosticInfoRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetDiagInfoSeverity(DI:LLVMDiagnosticInfoRef) -> LLVMDiagnosticSeverity: ...
@dll.bind
def LLVMGetMDKindIDInContext(C:LLVMContextRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetMDKindID(Name:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_uint32]: ...
size_t: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
def LLVMGetSyncScopeID(C:LLVMContextRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:size_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetEnumAttributeKindForName(Name:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:size_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetLastEnumAttributeKind() -> Annotated[int, ctypes.c_uint32]: ...
uint64_t: TypeAlias = Annotated[int, ctypes.c_uint64]
class struct_LLVMOpaqueAttributeRef(ctypes.Structure): pass
LLVMAttributeRef: TypeAlias = c.POINTER[struct_LLVMOpaqueAttributeRef]
@dll.bind
def LLVMCreateEnumAttribute(C:LLVMContextRef, KindID:Annotated[int, ctypes.c_uint32], Val:uint64_t) -> LLVMAttributeRef: ...
@dll.bind
def LLVMGetEnumAttributeKind(A:LLVMAttributeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetEnumAttributeValue(A:LLVMAttributeRef) -> uint64_t: ...
class struct_LLVMOpaqueType(ctypes.Structure): pass
LLVMTypeRef: TypeAlias = c.POINTER[struct_LLVMOpaqueType]
@dll.bind
def LLVMCreateTypeAttribute(C:LLVMContextRef, KindID:Annotated[int, ctypes.c_uint32], type_ref:LLVMTypeRef) -> LLVMAttributeRef: ...
@dll.bind
def LLVMGetTypeAttributeValue(A:LLVMAttributeRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMCreateConstantRangeAttribute(C:LLVMContextRef, KindID:Annotated[int, ctypes.c_uint32], NumBits:Annotated[int, ctypes.c_uint32], LowerWords:c.Array[uint64_t, Literal[0]], UpperWords:c.Array[uint64_t, Literal[0]]) -> LLVMAttributeRef: ...
@dll.bind
def LLVMCreateStringAttribute(C:LLVMContextRef, K:c.POINTER[Annotated[bytes, ctypes.c_char]], KLength:Annotated[int, ctypes.c_uint32], V:c.POINTER[Annotated[bytes, ctypes.c_char]], VLength:Annotated[int, ctypes.c_uint32]) -> LLVMAttributeRef: ...
@dll.bind
def LLVMGetStringAttributeKind(A:LLVMAttributeRef, Length:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetStringAttributeValue(A:LLVMAttributeRef, Length:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMIsEnumAttribute(A:LLVMAttributeRef) -> LLVMBool: ...
@dll.bind
def LLVMIsStringAttribute(A:LLVMAttributeRef) -> LLVMBool: ...
@dll.bind
def LLVMIsTypeAttribute(A:LLVMAttributeRef) -> LLVMBool: ...
@dll.bind
def LLVMGetTypeByName2(C:LLVMContextRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMTypeRef: ...
@dll.bind
def LLVMModuleCreateWithName(ModuleID:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMModuleRef: ...
@dll.bind
def LLVMModuleCreateWithNameInContext(ModuleID:c.POINTER[Annotated[bytes, ctypes.c_char]], C:LLVMContextRef) -> LLVMModuleRef: ...
@dll.bind
def LLVMCloneModule(M:LLVMModuleRef) -> LLVMModuleRef: ...
@dll.bind
def LLVMDisposeModule(M:LLVMModuleRef) -> None: ...
@dll.bind
def LLVMIsNewDbgInfoFormat(M:LLVMModuleRef) -> LLVMBool: ...
@dll.bind
def LLVMSetIsNewDbgInfoFormat(M:LLVMModuleRef, UseNewFormat:LLVMBool) -> None: ...
@dll.bind
def LLVMGetModuleIdentifier(M:LLVMModuleRef, Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetModuleIdentifier(M:LLVMModuleRef, Ident:c.POINTER[Annotated[bytes, ctypes.c_char]], Len:size_t) -> None: ...
@dll.bind
def LLVMGetSourceFileName(M:LLVMModuleRef, Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetSourceFileName(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], Len:size_t) -> None: ...
@dll.bind
def LLVMGetDataLayoutStr(M:LLVMModuleRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetDataLayout(M:LLVMModuleRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetDataLayout(M:LLVMModuleRef, DataLayoutStr:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMGetTarget(M:LLVMModuleRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetTarget(M:LLVMModuleRef, Triple:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
class struct_LLVMOpaqueModuleFlagEntry(ctypes.Structure): pass
LLVMModuleFlagEntry: TypeAlias = struct_LLVMOpaqueModuleFlagEntry
@dll.bind
def LLVMCopyModuleFlagsMetadata(M:LLVMModuleRef, Len:c.POINTER[size_t]) -> c.POINTER[LLVMModuleFlagEntry]: ...
@dll.bind
def LLVMDisposeModuleFlagsMetadata(Entries:c.POINTER[LLVMModuleFlagEntry]) -> None: ...
@dll.bind
def LLVMModuleFlagEntriesGetFlagBehavior(Entries:c.POINTER[LLVMModuleFlagEntry], Index:Annotated[int, ctypes.c_uint32]) -> LLVMModuleFlagBehavior: ...
@dll.bind
def LLVMModuleFlagEntriesGetKey(Entries:c.POINTER[LLVMModuleFlagEntry], Index:Annotated[int, ctypes.c_uint32], Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
class struct_LLVMOpaqueMetadata(ctypes.Structure): pass
LLVMMetadataRef: TypeAlias = c.POINTER[struct_LLVMOpaqueMetadata]
@dll.bind
def LLVMModuleFlagEntriesGetMetadata(Entries:c.POINTER[LLVMModuleFlagEntry], Index:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMGetModuleFlag(M:LLVMModuleRef, Key:c.POINTER[Annotated[bytes, ctypes.c_char]], KeyLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMAddModuleFlag(M:LLVMModuleRef, Behavior:LLVMModuleFlagBehavior, Key:c.POINTER[Annotated[bytes, ctypes.c_char]], KeyLen:size_t, Val:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMDumpModule(M:LLVMModuleRef) -> None: ...
@dll.bind
def LLVMPrintModuleToFile(M:LLVMModuleRef, Filename:c.POINTER[Annotated[bytes, ctypes.c_char]], ErrorMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMPrintModuleToString(M:LLVMModuleRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetModuleInlineAsm(M:LLVMModuleRef, Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetModuleInlineAsm2(M:LLVMModuleRef, Asm:c.POINTER[Annotated[bytes, ctypes.c_char]], Len:size_t) -> None: ...
@dll.bind
def LLVMAppendModuleInlineAsm(M:LLVMModuleRef, Asm:c.POINTER[Annotated[bytes, ctypes.c_char]], Len:size_t) -> None: ...
@dll.bind
def LLVMGetInlineAsm(Ty:LLVMTypeRef, AsmString:c.POINTER[Annotated[bytes, ctypes.c_char]], AsmStringSize:size_t, Constraints:c.POINTER[Annotated[bytes, ctypes.c_char]], ConstraintsSize:size_t, HasSideEffects:LLVMBool, IsAlignStack:LLVMBool, Dialect:LLVMInlineAsmDialect, CanThrow:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMGetInlineAsmAsmString(InlineAsmVal:LLVMValueRef, Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetInlineAsmConstraintString(InlineAsmVal:LLVMValueRef, Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetInlineAsmDialect(InlineAsmVal:LLVMValueRef) -> LLVMInlineAsmDialect: ...
@dll.bind
def LLVMGetInlineAsmFunctionType(InlineAsmVal:LLVMValueRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetInlineAsmHasSideEffects(InlineAsmVal:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetInlineAsmNeedsAlignedStack(InlineAsmVal:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetInlineAsmCanUnwind(InlineAsmVal:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetModuleContext(M:LLVMModuleRef) -> LLVMContextRef: ...
@dll.bind
def LLVMGetTypeByName(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMTypeRef: ...
class struct_LLVMOpaqueNamedMDNode(ctypes.Structure): pass
LLVMNamedMDNodeRef: TypeAlias = c.POINTER[struct_LLVMOpaqueNamedMDNode]
@dll.bind
def LLVMGetFirstNamedMetadata(M:LLVMModuleRef) -> LLVMNamedMDNodeRef: ...
@dll.bind
def LLVMGetLastNamedMetadata(M:LLVMModuleRef) -> LLVMNamedMDNodeRef: ...
@dll.bind
def LLVMGetNextNamedMetadata(NamedMDNode:LLVMNamedMDNodeRef) -> LLVMNamedMDNodeRef: ...
@dll.bind
def LLVMGetPreviousNamedMetadata(NamedMDNode:LLVMNamedMDNodeRef) -> LLVMNamedMDNodeRef: ...
@dll.bind
def LLVMGetNamedMetadata(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> LLVMNamedMDNodeRef: ...
@dll.bind
def LLVMGetOrInsertNamedMetadata(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> LLVMNamedMDNodeRef: ...
@dll.bind
def LLVMGetNamedMetadataName(NamedMD:LLVMNamedMDNodeRef, NameLen:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetNamedMetadataNumOperands(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetNamedMetadataOperands(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], Dest:c.POINTER[LLVMValueRef]) -> None: ...
@dll.bind
def LLVMAddNamedMetadataOperand(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], Val:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetDebugLocDirectory(Val:LLVMValueRef, Length:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetDebugLocFilename(Val:LLVMValueRef, Length:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetDebugLocLine(Val:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetDebugLocColumn(Val:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMAddFunction(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], FunctionTy:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNamedFunction(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNamedFunctionWithLength(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], Length:size_t) -> LLVMValueRef: ...
@dll.bind
def LLVMGetFirstFunction(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetLastFunction(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNextFunction(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPreviousFunction(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetModuleInlineAsm(M:LLVMModuleRef, Asm:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMGetTypeKind(Ty:LLVMTypeRef) -> LLVMTypeKind: ...
@dll.bind
def LLVMTypeIsSized(Ty:LLVMTypeRef) -> LLVMBool: ...
@dll.bind
def LLVMGetTypeContext(Ty:LLVMTypeRef) -> LLVMContextRef: ...
@dll.bind
def LLVMDumpType(Val:LLVMTypeRef) -> None: ...
@dll.bind
def LLVMPrintTypeToString(Val:LLVMTypeRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMInt1TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMInt8TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMInt16TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMInt32TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMInt64TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMInt128TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMIntTypeInContext(C:LLVMContextRef, NumBits:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMInt1Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMInt8Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMInt16Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMInt32Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMInt64Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMInt128Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMIntType(NumBits:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetIntTypeWidth(IntegerTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMHalfTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMBFloatTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMFloatTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMDoubleTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMX86FP80TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMFP128TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMPPCFP128TypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMHalfType() -> LLVMTypeRef: ...
@dll.bind
def LLVMBFloatType() -> LLVMTypeRef: ...
@dll.bind
def LLVMFloatType() -> LLVMTypeRef: ...
@dll.bind
def LLVMDoubleType() -> LLVMTypeRef: ...
@dll.bind
def LLVMX86FP80Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMFP128Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMPPCFP128Type() -> LLVMTypeRef: ...
@dll.bind
def LLVMFunctionType(ReturnType:LLVMTypeRef, ParamTypes:c.POINTER[LLVMTypeRef], ParamCount:Annotated[int, ctypes.c_uint32], IsVarArg:LLVMBool) -> LLVMTypeRef: ...
@dll.bind
def LLVMIsFunctionVarArg(FunctionTy:LLVMTypeRef) -> LLVMBool: ...
@dll.bind
def LLVMGetReturnType(FunctionTy:LLVMTypeRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMCountParamTypes(FunctionTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetParamTypes(FunctionTy:LLVMTypeRef, Dest:c.POINTER[LLVMTypeRef]) -> None: ...
@dll.bind
def LLVMStructTypeInContext(C:LLVMContextRef, ElementTypes:c.POINTER[LLVMTypeRef], ElementCount:Annotated[int, ctypes.c_uint32], Packed:LLVMBool) -> LLVMTypeRef: ...
@dll.bind
def LLVMStructType(ElementTypes:c.POINTER[LLVMTypeRef], ElementCount:Annotated[int, ctypes.c_uint32], Packed:LLVMBool) -> LLVMTypeRef: ...
@dll.bind
def LLVMStructCreateNamed(C:LLVMContextRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetStructName(Ty:LLVMTypeRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMStructSetBody(StructTy:LLVMTypeRef, ElementTypes:c.POINTER[LLVMTypeRef], ElementCount:Annotated[int, ctypes.c_uint32], Packed:LLVMBool) -> None: ...
@dll.bind
def LLVMCountStructElementTypes(StructTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetStructElementTypes(StructTy:LLVMTypeRef, Dest:c.POINTER[LLVMTypeRef]) -> None: ...
@dll.bind
def LLVMStructGetTypeAtIndex(StructTy:LLVMTypeRef, i:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMIsPackedStruct(StructTy:LLVMTypeRef) -> LLVMBool: ...
@dll.bind
def LLVMIsOpaqueStruct(StructTy:LLVMTypeRef) -> LLVMBool: ...
@dll.bind
def LLVMIsLiteralStruct(StructTy:LLVMTypeRef) -> LLVMBool: ...
@dll.bind
def LLVMGetElementType(Ty:LLVMTypeRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetSubtypes(Tp:LLVMTypeRef, Arr:c.POINTER[LLVMTypeRef]) -> None: ...
@dll.bind
def LLVMGetNumContainedTypes(Tp:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMArrayType(ElementType:LLVMTypeRef, ElementCount:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMArrayType2(ElementType:LLVMTypeRef, ElementCount:uint64_t) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetArrayLength(ArrayTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetArrayLength2(ArrayTy:LLVMTypeRef) -> uint64_t: ...
@dll.bind
def LLVMPointerType(ElementType:LLVMTypeRef, AddressSpace:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMPointerTypeIsOpaque(Ty:LLVMTypeRef) -> LLVMBool: ...
@dll.bind
def LLVMPointerTypeInContext(C:LLVMContextRef, AddressSpace:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetPointerAddressSpace(PointerTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMVectorType(ElementType:LLVMTypeRef, ElementCount:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMScalableVectorType(ElementType:LLVMTypeRef, ElementCount:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetVectorSize(VectorTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetConstantPtrAuthPointer(PtrAuth:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetConstantPtrAuthKey(PtrAuth:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetConstantPtrAuthDiscriminator(PtrAuth:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetConstantPtrAuthAddrDiscriminator(PtrAuth:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMVoidTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMLabelTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMX86AMXTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMTokenTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMMetadataTypeInContext(C:LLVMContextRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMVoidType() -> LLVMTypeRef: ...
@dll.bind
def LLVMLabelType() -> LLVMTypeRef: ...
@dll.bind
def LLVMX86AMXType() -> LLVMTypeRef: ...
@dll.bind
def LLVMTargetExtTypeInContext(C:LLVMContextRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], TypeParams:c.POINTER[LLVMTypeRef], TypeParamCount:Annotated[int, ctypes.c_uint32], IntParams:c.POINTER[Annotated[int, ctypes.c_uint32]], IntParamCount:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetTargetExtTypeName(TargetExtTy:LLVMTypeRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetTargetExtTypeNumTypeParams(TargetExtTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetTargetExtTypeTypeParam(TargetExtTy:LLVMTypeRef, Idx:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetTargetExtTypeNumIntParams(TargetExtTy:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetTargetExtTypeIntParam(TargetExtTy:LLVMTypeRef, Idx:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMTypeOf(Val:LLVMValueRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetValueKind(Val:LLVMValueRef) -> LLVMValueKind: ...
@dll.bind
def LLVMGetValueName2(Val:LLVMValueRef, Length:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetValueName2(Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> None: ...
@dll.bind
def LLVMDumpValue(Val:LLVMValueRef) -> None: ...
@dll.bind
def LLVMPrintValueToString(Val:LLVMValueRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetValueContext(Val:LLVMValueRef) -> LLVMContextRef: ...
class struct_LLVMOpaqueDbgRecord(ctypes.Structure): pass
LLVMDbgRecordRef: TypeAlias = c.POINTER[struct_LLVMOpaqueDbgRecord]
@dll.bind
def LLVMPrintDbgRecordToString(Record:LLVMDbgRecordRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMReplaceAllUsesWith(OldVal:LLVMValueRef, NewVal:LLVMValueRef) -> None: ...
@dll.bind
def LLVMIsConstant(Val:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMIsUndef(Val:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMIsPoison(Val:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMIsAArgument(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsABasicBlock(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAInlineAsm(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAUser(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstant(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsABlockAddress(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantAggregateZero(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantArray(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantDataSequential(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantDataArray(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantDataVector(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantExpr(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantFP(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantInt(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantPointerNull(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantStruct(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantTokenNone(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantVector(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAConstantPtrAuth(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAGlobalValue(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAGlobalAlias(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAGlobalObject(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFunction(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAGlobalVariable(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAGlobalIFunc(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAUndefValue(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAPoisonValue(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAInstruction(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAUnaryOperator(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsABinaryOperator(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACallInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAIntrinsicInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsADbgInfoIntrinsic(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsADbgVariableIntrinsic(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsADbgDeclareInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsADbgLabelInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAMemIntrinsic(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAMemCpyInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAMemMoveInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAMemSetInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACmpInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFCmpInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAICmpInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAExtractElementInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAGetElementPtrInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAInsertElementInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAInsertValueInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsALandingPadInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAPHINode(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsASelectInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAShuffleVectorInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAStoreInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsABranchInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAIndirectBrInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAInvokeInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAReturnInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsASwitchInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAUnreachableInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAResumeInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACleanupReturnInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACatchReturnInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACatchSwitchInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACallBrInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFuncletPadInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACatchPadInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACleanupPadInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAUnaryInstruction(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAAllocaInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsACastInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAAddrSpaceCastInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsABitCastInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFPExtInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFPToSIInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFPToUIInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFPTruncInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAIntToPtrInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAPtrToIntInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsASExtInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsASIToFPInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsATruncInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAUIToFPInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAZExtInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAExtractValueInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsALoadInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAVAArgInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFreezeInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAAtomicCmpXchgInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAAtomicRMWInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAFenceInst(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAMDNode(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAValueAsMetadata(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsAMDString(Val:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetValueName(Val:LLVMValueRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetValueName(Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
class struct_LLVMOpaqueUse(ctypes.Structure): pass
LLVMUseRef: TypeAlias = c.POINTER[struct_LLVMOpaqueUse]
@dll.bind
def LLVMGetFirstUse(Val:LLVMValueRef) -> LLVMUseRef: ...
@dll.bind
def LLVMGetNextUse(U:LLVMUseRef) -> LLVMUseRef: ...
@dll.bind
def LLVMGetUser(U:LLVMUseRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetUsedValue(U:LLVMUseRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetOperand(Val:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetOperandUse(Val:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMUseRef: ...
@dll.bind
def LLVMSetOperand(User:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32], Val:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetNumOperands(Val:LLVMValueRef) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMConstNull(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstAllOnes(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetUndef(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPoison(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsNull(Val:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMConstPointerNull(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstInt(IntTy:LLVMTypeRef, N:Annotated[int, ctypes.c_uint64], SignExtend:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMConstIntOfArbitraryPrecision(IntTy:LLVMTypeRef, NumWords:Annotated[int, ctypes.c_uint32], Words:c.Array[uint64_t, Literal[0]]) -> LLVMValueRef: ...
uint8_t: TypeAlias = Annotated[int, ctypes.c_ubyte]
@dll.bind
def LLVMConstIntOfString(IntTy:LLVMTypeRef, Text:c.POINTER[Annotated[bytes, ctypes.c_char]], Radix:uint8_t) -> LLVMValueRef: ...
@dll.bind
def LLVMConstIntOfStringAndSize(IntTy:LLVMTypeRef, Text:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:Annotated[int, ctypes.c_uint32], Radix:uint8_t) -> LLVMValueRef: ...
@dll.bind
def LLVMConstReal(RealTy:LLVMTypeRef, N:Annotated[float, ctypes.c_double]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstRealOfString(RealTy:LLVMTypeRef, Text:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstRealOfStringAndSize(RealTy:LLVMTypeRef, Text:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstIntGetZExtValue(ConstantVal:LLVMValueRef) -> Annotated[int, ctypes.c_uint64]: ...
@dll.bind
def LLVMConstIntGetSExtValue(ConstantVal:LLVMValueRef) -> Annotated[int, ctypes.c_int64]: ...
@dll.bind
def LLVMConstRealGetDouble(ConstantVal:LLVMValueRef, losesInfo:c.POINTER[LLVMBool]) -> Annotated[float, ctypes.c_double]: ...
@dll.bind
def LLVMConstStringInContext(C:LLVMContextRef, Str:c.POINTER[Annotated[bytes, ctypes.c_char]], Length:Annotated[int, ctypes.c_uint32], DontNullTerminate:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMConstStringInContext2(C:LLVMContextRef, Str:c.POINTER[Annotated[bytes, ctypes.c_char]], Length:size_t, DontNullTerminate:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMConstString(Str:c.POINTER[Annotated[bytes, ctypes.c_char]], Length:Annotated[int, ctypes.c_uint32], DontNullTerminate:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMIsConstantString(c:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetAsString(c:LLVMValueRef, Length:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMConstStructInContext(C:LLVMContextRef, ConstantVals:c.POINTER[LLVMValueRef], Count:Annotated[int, ctypes.c_uint32], Packed:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMConstStruct(ConstantVals:c.POINTER[LLVMValueRef], Count:Annotated[int, ctypes.c_uint32], Packed:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMConstArray(ElementTy:LLVMTypeRef, ConstantVals:c.POINTER[LLVMValueRef], Length:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstArray2(ElementTy:LLVMTypeRef, ConstantVals:c.POINTER[LLVMValueRef], Length:uint64_t) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNamedStruct(StructTy:LLVMTypeRef, ConstantVals:c.POINTER[LLVMValueRef], Count:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetAggregateElement(C:LLVMValueRef, Idx:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetElementAsConstant(C:LLVMValueRef, idx:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstVector(ScalarConstantVals:c.POINTER[LLVMValueRef], Size:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstantPtrAuth(Ptr:LLVMValueRef, Key:LLVMValueRef, Disc:LLVMValueRef, AddrDisc:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetConstOpcode(ConstantVal:LLVMValueRef) -> LLVMOpcode: ...
@dll.bind
def LLVMAlignOf(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSizeOf(Ty:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNeg(ConstantVal:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNSWNeg(ConstantVal:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNUWNeg(ConstantVal:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNot(ConstantVal:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstAdd(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNSWAdd(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNUWAdd(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstSub(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNSWSub(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNUWSub(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstMul(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNSWMul(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstNUWMul(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstXor(LHSConstant:LLVMValueRef, RHSConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstGEP2(Ty:LLVMTypeRef, ConstantVal:LLVMValueRef, ConstantIndices:c.POINTER[LLVMValueRef], NumIndices:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstInBoundsGEP2(Ty:LLVMTypeRef, ConstantVal:LLVMValueRef, ConstantIndices:c.POINTER[LLVMValueRef], NumIndices:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMConstGEPWithNoWrapFlags(Ty:LLVMTypeRef, ConstantVal:LLVMValueRef, ConstantIndices:c.POINTER[LLVMValueRef], NumIndices:Annotated[int, ctypes.c_uint32], NoWrapFlags:LLVMGEPNoWrapFlags) -> LLVMValueRef: ...
@dll.bind
def LLVMConstTrunc(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstPtrToInt(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstIntToPtr(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstBitCast(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstAddrSpaceCast(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstTruncOrBitCast(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstPointerCast(ConstantVal:LLVMValueRef, ToType:LLVMTypeRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstExtractElement(VectorConstant:LLVMValueRef, IndexConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstInsertElement(VectorConstant:LLVMValueRef, ElementValueConstant:LLVMValueRef, IndexConstant:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMConstShuffleVector(VectorAConstant:LLVMValueRef, VectorBConstant:LLVMValueRef, MaskConstant:LLVMValueRef) -> LLVMValueRef: ...
class struct_LLVMOpaqueBasicBlock(ctypes.Structure): pass
LLVMBasicBlockRef: TypeAlias = c.POINTER[struct_LLVMOpaqueBasicBlock]
@dll.bind
def LLVMBlockAddress(F:LLVMValueRef, BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetBlockAddressFunction(BlockAddr:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetBlockAddressBasicBlock(BlockAddr:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMConstInlineAsm(Ty:LLVMTypeRef, AsmString:c.POINTER[Annotated[bytes, ctypes.c_char]], Constraints:c.POINTER[Annotated[bytes, ctypes.c_char]], HasSideEffects:LLVMBool, IsAlignStack:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMGetGlobalParent(Global:LLVMValueRef) -> LLVMModuleRef: ...
@dll.bind
def LLVMIsDeclaration(Global:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetLinkage(Global:LLVMValueRef) -> LLVMLinkage: ...
@dll.bind
def LLVMSetLinkage(Global:LLVMValueRef, Linkage:LLVMLinkage) -> None: ...
@dll.bind
def LLVMGetSection(Global:LLVMValueRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetSection(Global:LLVMValueRef, Section:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMGetVisibility(Global:LLVMValueRef) -> LLVMVisibility: ...
@dll.bind
def LLVMSetVisibility(Global:LLVMValueRef, Viz:LLVMVisibility) -> None: ...
@dll.bind
def LLVMGetDLLStorageClass(Global:LLVMValueRef) -> LLVMDLLStorageClass: ...
@dll.bind
def LLVMSetDLLStorageClass(Global:LLVMValueRef, Class:LLVMDLLStorageClass) -> None: ...
@dll.bind
def LLVMGetUnnamedAddress(Global:LLVMValueRef) -> LLVMUnnamedAddr: ...
@dll.bind
def LLVMSetUnnamedAddress(Global:LLVMValueRef, UnnamedAddr:LLVMUnnamedAddr) -> None: ...
@dll.bind
def LLVMGlobalGetValueType(Global:LLVMValueRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMHasUnnamedAddr(Global:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetUnnamedAddr(Global:LLVMValueRef, HasUnnamedAddr:LLVMBool) -> None: ...
@dll.bind
def LLVMGetAlignment(V:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMSetAlignment(V:LLVMValueRef, Bytes:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMGlobalSetMetadata(Global:LLVMValueRef, Kind:Annotated[int, ctypes.c_uint32], MD:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMGlobalEraseMetadata(Global:LLVMValueRef, Kind:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMGlobalClearMetadata(Global:LLVMValueRef) -> None: ...
class struct_LLVMOpaqueValueMetadataEntry(ctypes.Structure): pass
LLVMValueMetadataEntry: TypeAlias = struct_LLVMOpaqueValueMetadataEntry
@dll.bind
def LLVMGlobalCopyAllMetadata(Value:LLVMValueRef, NumEntries:c.POINTER[size_t]) -> c.POINTER[LLVMValueMetadataEntry]: ...
@dll.bind
def LLVMDisposeValueMetadataEntries(Entries:c.POINTER[LLVMValueMetadataEntry]) -> None: ...
@dll.bind
def LLVMValueMetadataEntriesGetKind(Entries:c.POINTER[LLVMValueMetadataEntry], Index:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMValueMetadataEntriesGetMetadata(Entries:c.POINTER[LLVMValueMetadataEntry], Index:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMAddGlobal(M:LLVMModuleRef, Ty:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMAddGlobalInAddressSpace(M:LLVMModuleRef, Ty:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], AddressSpace:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNamedGlobal(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNamedGlobalWithLength(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], Length:size_t) -> LLVMValueRef: ...
@dll.bind
def LLVMGetFirstGlobal(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetLastGlobal(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNextGlobal(GlobalVar:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPreviousGlobal(GlobalVar:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMDeleteGlobal(GlobalVar:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetInitializer(GlobalVar:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetInitializer(GlobalVar:LLVMValueRef, ConstantVal:LLVMValueRef) -> None: ...
@dll.bind
def LLVMIsThreadLocal(GlobalVar:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetThreadLocal(GlobalVar:LLVMValueRef, IsThreadLocal:LLVMBool) -> None: ...
@dll.bind
def LLVMIsGlobalConstant(GlobalVar:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetGlobalConstant(GlobalVar:LLVMValueRef, IsConstant:LLVMBool) -> None: ...
@dll.bind
def LLVMGetThreadLocalMode(GlobalVar:LLVMValueRef) -> LLVMThreadLocalMode: ...
@dll.bind
def LLVMSetThreadLocalMode(GlobalVar:LLVMValueRef, Mode:LLVMThreadLocalMode) -> None: ...
@dll.bind
def LLVMIsExternallyInitialized(GlobalVar:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetExternallyInitialized(GlobalVar:LLVMValueRef, IsExtInit:LLVMBool) -> None: ...
@dll.bind
def LLVMAddAlias2(M:LLVMModuleRef, ValueTy:LLVMTypeRef, AddrSpace:Annotated[int, ctypes.c_uint32], Aliasee:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNamedGlobalAlias(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> LLVMValueRef: ...
@dll.bind
def LLVMGetFirstGlobalAlias(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetLastGlobalAlias(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNextGlobalAlias(GA:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPreviousGlobalAlias(GA:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMAliasGetAliasee(Alias:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMAliasSetAliasee(Alias:LLVMValueRef, Aliasee:LLVMValueRef) -> None: ...
@dll.bind
def LLVMDeleteFunction(Fn:LLVMValueRef) -> None: ...
@dll.bind
def LLVMHasPersonalityFn(Fn:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetPersonalityFn(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetPersonalityFn(Fn:LLVMValueRef, PersonalityFn:LLVMValueRef) -> None: ...
@dll.bind
def LLVMLookupIntrinsicID(Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetIntrinsicID(Fn:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetIntrinsicDeclaration(Mod:LLVMModuleRef, ID:Annotated[int, ctypes.c_uint32], ParamTypes:c.POINTER[LLVMTypeRef], ParamCount:size_t) -> LLVMValueRef: ...
@dll.bind
def LLVMIntrinsicGetType(Ctx:LLVMContextRef, ID:Annotated[int, ctypes.c_uint32], ParamTypes:c.POINTER[LLVMTypeRef], ParamCount:size_t) -> LLVMTypeRef: ...
@dll.bind
def LLVMIntrinsicGetName(ID:Annotated[int, ctypes.c_uint32], NameLength:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMIntrinsicCopyOverloadedName(ID:Annotated[int, ctypes.c_uint32], ParamTypes:c.POINTER[LLVMTypeRef], ParamCount:size_t, NameLength:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMIntrinsicCopyOverloadedName2(Mod:LLVMModuleRef, ID:Annotated[int, ctypes.c_uint32], ParamTypes:c.POINTER[LLVMTypeRef], ParamCount:size_t, NameLength:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMIntrinsicIsOverloaded(ID:Annotated[int, ctypes.c_uint32]) -> LLVMBool: ...
@dll.bind
def LLVMGetFunctionCallConv(Fn:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMSetFunctionCallConv(Fn:LLVMValueRef, CC:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMGetGC(Fn:LLVMValueRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMSetGC(Fn:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMGetPrefixData(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMHasPrefixData(Fn:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetPrefixData(Fn:LLVMValueRef, prefixData:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetPrologueData(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMHasPrologueData(Fn:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetPrologueData(Fn:LLVMValueRef, prologueData:LLVMValueRef) -> None: ...
@dll.bind
def LLVMAddAttributeAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex, A:LLVMAttributeRef) -> None: ...
@dll.bind
def LLVMGetAttributeCountAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetAttributesAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex, Attrs:c.POINTER[LLVMAttributeRef]) -> None: ...
@dll.bind
def LLVMGetEnumAttributeAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex, KindID:Annotated[int, ctypes.c_uint32]) -> LLVMAttributeRef: ...
@dll.bind
def LLVMGetStringAttributeAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex, K:c.POINTER[Annotated[bytes, ctypes.c_char]], KLen:Annotated[int, ctypes.c_uint32]) -> LLVMAttributeRef: ...
@dll.bind
def LLVMRemoveEnumAttributeAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex, KindID:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMRemoveStringAttributeAtIndex(F:LLVMValueRef, Idx:LLVMAttributeIndex, K:c.POINTER[Annotated[bytes, ctypes.c_char]], KLen:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMAddTargetDependentFunctionAttr(Fn:LLVMValueRef, A:c.POINTER[Annotated[bytes, ctypes.c_char]], V:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMCountParams(Fn:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetParams(Fn:LLVMValueRef, Params:c.POINTER[LLVMValueRef]) -> None: ...
@dll.bind
def LLVMGetParam(Fn:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetParamParent(Inst:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetFirstParam(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetLastParam(Fn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNextParam(Arg:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPreviousParam(Arg:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetParamAlignment(Arg:LLVMValueRef, Align:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMAddGlobalIFunc(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Ty:LLVMTypeRef, AddrSpace:Annotated[int, ctypes.c_uint32], Resolver:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNamedGlobalIFunc(M:LLVMModuleRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> LLVMValueRef: ...
@dll.bind
def LLVMGetFirstGlobalIFunc(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetLastGlobalIFunc(M:LLVMModuleRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNextGlobalIFunc(IFunc:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPreviousGlobalIFunc(IFunc:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetGlobalIFuncResolver(IFunc:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetGlobalIFuncResolver(IFunc:LLVMValueRef, Resolver:LLVMValueRef) -> None: ...
@dll.bind
def LLVMEraseGlobalIFunc(IFunc:LLVMValueRef) -> None: ...
@dll.bind
def LLVMRemoveGlobalIFunc(IFunc:LLVMValueRef) -> None: ...
@dll.bind
def LLVMMDStringInContext2(C:LLVMContextRef, Str:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMMDNodeInContext2(C:LLVMContextRef, MDs:c.POINTER[LLVMMetadataRef], Count:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMMetadataAsValue(C:LLVMContextRef, MD:LLVMMetadataRef) -> LLVMValueRef: ...
@dll.bind
def LLVMValueAsMetadata(Val:LLVMValueRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMGetMDString(V:LLVMValueRef, Length:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetMDNodeNumOperands(V:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetMDNodeOperands(V:LLVMValueRef, Dest:c.POINTER[LLVMValueRef]) -> None: ...
@dll.bind
def LLVMReplaceMDNodeOperandWith(V:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32], Replacement:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMMDStringInContext(C:LLVMContextRef, Str:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMMDString(Str:c.POINTER[Annotated[bytes, ctypes.c_char]], SLen:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMMDNodeInContext(C:LLVMContextRef, Vals:c.POINTER[LLVMValueRef], Count:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMMDNode(Vals:c.POINTER[LLVMValueRef], Count:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
class struct_LLVMOpaqueOperandBundle(ctypes.Structure): pass
LLVMOperandBundleRef: TypeAlias = c.POINTER[struct_LLVMOpaqueOperandBundle]
@dll.bind
def LLVMCreateOperandBundle(Tag:c.POINTER[Annotated[bytes, ctypes.c_char]], TagLen:size_t, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32]) -> LLVMOperandBundleRef: ...
@dll.bind
def LLVMDisposeOperandBundle(Bundle:LLVMOperandBundleRef) -> None: ...
@dll.bind
def LLVMGetOperandBundleTag(Bundle:LLVMOperandBundleRef, Len:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetNumOperandBundleArgs(Bundle:LLVMOperandBundleRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetOperandBundleArgAtIndex(Bundle:LLVMOperandBundleRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMBasicBlockAsValue(BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMValueIsBasicBlock(Val:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMValueAsBasicBlock(Val:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetBasicBlockName(BB:LLVMBasicBlockRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetBasicBlockParent(BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetBasicBlockTerminator(BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMCountBasicBlocks(Fn:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetBasicBlocks(Fn:LLVMValueRef, BasicBlocks:c.POINTER[LLVMBasicBlockRef]) -> None: ...
@dll.bind
def LLVMGetFirstBasicBlock(Fn:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetLastBasicBlock(Fn:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetNextBasicBlock(BB:LLVMBasicBlockRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetPreviousBasicBlock(BB:LLVMBasicBlockRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetEntryBasicBlock(Fn:LLVMValueRef) -> LLVMBasicBlockRef: ...
class struct_LLVMOpaqueBuilder(ctypes.Structure): pass
LLVMBuilderRef: TypeAlias = c.POINTER[struct_LLVMOpaqueBuilder]
@dll.bind
def LLVMInsertExistingBasicBlockAfterInsertBlock(Builder:LLVMBuilderRef, BB:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMAppendExistingBasicBlock(Fn:LLVMValueRef, BB:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMCreateBasicBlockInContext(C:LLVMContextRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMAppendBasicBlockInContext(C:LLVMContextRef, Fn:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMAppendBasicBlock(Fn:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMInsertBasicBlockInContext(C:LLVMContextRef, BB:LLVMBasicBlockRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMInsertBasicBlock(InsertBeforeBB:LLVMBasicBlockRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMDeleteBasicBlock(BB:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMRemoveBasicBlockFromParent(BB:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMMoveBasicBlockBefore(BB:LLVMBasicBlockRef, MovePos:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMMoveBasicBlockAfter(BB:LLVMBasicBlockRef, MovePos:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMGetFirstInstruction(BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetLastInstruction(BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMHasMetadata(Val:LLVMValueRef) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMGetMetadata(Val:LLVMValueRef, KindID:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMSetMetadata(Val:LLVMValueRef, KindID:Annotated[int, ctypes.c_uint32], Node:LLVMValueRef) -> None: ...
@dll.bind
def LLVMInstructionGetAllMetadataOtherThanDebugLoc(Instr:LLVMValueRef, NumEntries:c.POINTER[size_t]) -> c.POINTER[LLVMValueMetadataEntry]: ...
@dll.bind
def LLVMGetInstructionParent(Inst:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetNextInstruction(Inst:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetPreviousInstruction(Inst:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMInstructionRemoveFromParent(Inst:LLVMValueRef) -> None: ...
@dll.bind
def LLVMInstructionEraseFromParent(Inst:LLVMValueRef) -> None: ...
@dll.bind
def LLVMDeleteInstruction(Inst:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetInstructionOpcode(Inst:LLVMValueRef) -> LLVMOpcode: ...
@dll.bind
def LLVMGetICmpPredicate(Inst:LLVMValueRef) -> LLVMIntPredicate: ...
@dll.bind
def LLVMGetFCmpPredicate(Inst:LLVMValueRef) -> LLVMRealPredicate: ...
@dll.bind
def LLVMInstructionClone(Inst:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMIsATerminatorInst(Inst:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetFirstDbgRecord(Inst:LLVMValueRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMGetLastDbgRecord(Inst:LLVMValueRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMGetNextDbgRecord(DbgRecord:LLVMDbgRecordRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMGetPreviousDbgRecord(DbgRecord:LLVMDbgRecordRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMGetNumArgOperands(Instr:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMSetInstructionCallConv(Instr:LLVMValueRef, CC:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMGetInstructionCallConv(Instr:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMSetInstrParamAlignment(Instr:LLVMValueRef, Idx:LLVMAttributeIndex, Align:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMAddCallSiteAttribute(C:LLVMValueRef, Idx:LLVMAttributeIndex, A:LLVMAttributeRef) -> None: ...
@dll.bind
def LLVMGetCallSiteAttributeCount(C:LLVMValueRef, Idx:LLVMAttributeIndex) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetCallSiteAttributes(C:LLVMValueRef, Idx:LLVMAttributeIndex, Attrs:c.POINTER[LLVMAttributeRef]) -> None: ...
@dll.bind
def LLVMGetCallSiteEnumAttribute(C:LLVMValueRef, Idx:LLVMAttributeIndex, KindID:Annotated[int, ctypes.c_uint32]) -> LLVMAttributeRef: ...
@dll.bind
def LLVMGetCallSiteStringAttribute(C:LLVMValueRef, Idx:LLVMAttributeIndex, K:c.POINTER[Annotated[bytes, ctypes.c_char]], KLen:Annotated[int, ctypes.c_uint32]) -> LLVMAttributeRef: ...
@dll.bind
def LLVMRemoveCallSiteEnumAttribute(C:LLVMValueRef, Idx:LLVMAttributeIndex, KindID:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMRemoveCallSiteStringAttribute(C:LLVMValueRef, Idx:LLVMAttributeIndex, K:c.POINTER[Annotated[bytes, ctypes.c_char]], KLen:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMGetCalledFunctionType(C:LLVMValueRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMGetCalledValue(Instr:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNumOperandBundles(C:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetOperandBundleAtIndex(C:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMOperandBundleRef: ...
@dll.bind
def LLVMIsTailCall(CallInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetTailCall(CallInst:LLVMValueRef, IsTailCall:LLVMBool) -> None: ...
@dll.bind
def LLVMGetTailCallKind(CallInst:LLVMValueRef) -> LLVMTailCallKind: ...
@dll.bind
def LLVMSetTailCallKind(CallInst:LLVMValueRef, kind:LLVMTailCallKind) -> None: ...
@dll.bind
def LLVMGetNormalDest(InvokeInst:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetUnwindDest(InvokeInst:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMSetNormalDest(InvokeInst:LLVMValueRef, B:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMSetUnwindDest(InvokeInst:LLVMValueRef, B:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMGetCallBrDefaultDest(CallBr:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetCallBrNumIndirectDests(CallBr:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetCallBrIndirectDest(CallBr:LLVMValueRef, Idx:Annotated[int, ctypes.c_uint32]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetNumSuccessors(Term:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetSuccessor(Term:LLVMValueRef, i:Annotated[int, ctypes.c_uint32]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMSetSuccessor(Term:LLVMValueRef, i:Annotated[int, ctypes.c_uint32], block:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMIsConditional(Branch:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetCondition(Branch:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetCondition(Branch:LLVMValueRef, Cond:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetSwitchDefaultDest(SwitchInstr:LLVMValueRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetAllocatedType(Alloca:LLVMValueRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMIsInBounds(GEP:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetIsInBounds(GEP:LLVMValueRef, InBounds:LLVMBool) -> None: ...
@dll.bind
def LLVMGetGEPSourceElementType(GEP:LLVMValueRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMGEPGetNoWrapFlags(GEP:LLVMValueRef) -> LLVMGEPNoWrapFlags: ...
@dll.bind
def LLVMGEPSetNoWrapFlags(GEP:LLVMValueRef, NoWrapFlags:LLVMGEPNoWrapFlags) -> None: ...
@dll.bind
def LLVMAddIncoming(PhiNode:LLVMValueRef, IncomingValues:c.POINTER[LLVMValueRef], IncomingBlocks:c.POINTER[LLVMBasicBlockRef], Count:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMCountIncoming(PhiNode:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetIncomingValue(PhiNode:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetIncomingBlock(PhiNode:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32]) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMGetNumIndices(Inst:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetIndices(Inst:LLVMValueRef) -> c.POINTER[Annotated[int, ctypes.c_uint32]]: ...
@dll.bind
def LLVMCreateBuilderInContext(C:LLVMContextRef) -> LLVMBuilderRef: ...
@dll.bind
def LLVMCreateBuilder() -> LLVMBuilderRef: ...
@dll.bind
def LLVMPositionBuilder(Builder:LLVMBuilderRef, Block:LLVMBasicBlockRef, Instr:LLVMValueRef) -> None: ...
@dll.bind
def LLVMPositionBuilderBeforeDbgRecords(Builder:LLVMBuilderRef, Block:LLVMBasicBlockRef, Inst:LLVMValueRef) -> None: ...
@dll.bind
def LLVMPositionBuilderBefore(Builder:LLVMBuilderRef, Instr:LLVMValueRef) -> None: ...
@dll.bind
def LLVMPositionBuilderBeforeInstrAndDbgRecords(Builder:LLVMBuilderRef, Instr:LLVMValueRef) -> None: ...
@dll.bind
def LLVMPositionBuilderAtEnd(Builder:LLVMBuilderRef, Block:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMGetInsertBlock(Builder:LLVMBuilderRef) -> LLVMBasicBlockRef: ...
@dll.bind
def LLVMClearInsertionPosition(Builder:LLVMBuilderRef) -> None: ...
@dll.bind
def LLVMInsertIntoBuilder(Builder:LLVMBuilderRef, Instr:LLVMValueRef) -> None: ...
@dll.bind
def LLVMInsertIntoBuilderWithName(Builder:LLVMBuilderRef, Instr:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMDisposeBuilder(Builder:LLVMBuilderRef) -> None: ...
@dll.bind
def LLVMGetCurrentDebugLocation2(Builder:LLVMBuilderRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMSetCurrentDebugLocation2(Builder:LLVMBuilderRef, Loc:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMSetInstDebugLocation(Builder:LLVMBuilderRef, Inst:LLVMValueRef) -> None: ...
@dll.bind
def LLVMAddMetadataToInst(Builder:LLVMBuilderRef, Inst:LLVMValueRef) -> None: ...
@dll.bind
def LLVMBuilderGetDefaultFPMathTag(Builder:LLVMBuilderRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMBuilderSetDefaultFPMathTag(Builder:LLVMBuilderRef, FPMathTag:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMGetBuilderContext(Builder:LLVMBuilderRef) -> LLVMContextRef: ...
@dll.bind
def LLVMSetCurrentDebugLocation(Builder:LLVMBuilderRef, L:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetCurrentDebugLocation(Builder:LLVMBuilderRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildRetVoid(_0:LLVMBuilderRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildRet(_0:LLVMBuilderRef, V:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAggregateRet(_0:LLVMBuilderRef, RetVals:c.POINTER[LLVMValueRef], N:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildBr(_0:LLVMBuilderRef, Dest:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCondBr(_0:LLVMBuilderRef, If:LLVMValueRef, Then:LLVMBasicBlockRef, Else:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSwitch(_0:LLVMBuilderRef, V:LLVMValueRef, Else:LLVMBasicBlockRef, NumCases:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildIndirectBr(B:LLVMBuilderRef, Addr:LLVMValueRef, NumDests:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCallBr(B:LLVMBuilderRef, Ty:LLVMTypeRef, Fn:LLVMValueRef, DefaultDest:LLVMBasicBlockRef, IndirectDests:c.POINTER[LLVMBasicBlockRef], NumIndirectDests:Annotated[int, ctypes.c_uint32], Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Bundles:c.POINTER[LLVMOperandBundleRef], NumBundles:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildInvoke2(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Fn:LLVMValueRef, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Then:LLVMBasicBlockRef, Catch:LLVMBasicBlockRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildInvokeWithOperandBundles(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Fn:LLVMValueRef, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Then:LLVMBasicBlockRef, Catch:LLVMBasicBlockRef, Bundles:c.POINTER[LLVMOperandBundleRef], NumBundles:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildUnreachable(_0:LLVMBuilderRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildResume(B:LLVMBuilderRef, Exn:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildLandingPad(B:LLVMBuilderRef, Ty:LLVMTypeRef, PersFn:LLVMValueRef, NumClauses:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCleanupRet(B:LLVMBuilderRef, CatchPad:LLVMValueRef, BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCatchRet(B:LLVMBuilderRef, CatchPad:LLVMValueRef, BB:LLVMBasicBlockRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCatchPad(B:LLVMBuilderRef, ParentPad:LLVMValueRef, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCleanupPad(B:LLVMBuilderRef, ParentPad:LLVMValueRef, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCatchSwitch(B:LLVMBuilderRef, ParentPad:LLVMValueRef, UnwindBB:LLVMBasicBlockRef, NumHandlers:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMAddCase(Switch:LLVMValueRef, OnVal:LLVMValueRef, Dest:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMAddDestination(IndirectBr:LLVMValueRef, Dest:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMGetNumClauses(LandingPad:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetClause(LandingPad:LLVMValueRef, Idx:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMAddClause(LandingPad:LLVMValueRef, ClauseVal:LLVMValueRef) -> None: ...
@dll.bind
def LLVMIsCleanup(LandingPad:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetCleanup(LandingPad:LLVMValueRef, Val:LLVMBool) -> None: ...
@dll.bind
def LLVMAddHandler(CatchSwitch:LLVMValueRef, Dest:LLVMBasicBlockRef) -> None: ...
@dll.bind
def LLVMGetNumHandlers(CatchSwitch:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetHandlers(CatchSwitch:LLVMValueRef, Handlers:c.POINTER[LLVMBasicBlockRef]) -> None: ...
@dll.bind
def LLVMGetArgOperand(Funclet:LLVMValueRef, i:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMSetArgOperand(Funclet:LLVMValueRef, i:Annotated[int, ctypes.c_uint32], value:LLVMValueRef) -> None: ...
@dll.bind
def LLVMGetParentCatchSwitch(CatchPad:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMSetParentCatchSwitch(CatchPad:LLVMValueRef, CatchSwitch:LLVMValueRef) -> None: ...
@dll.bind
def LLVMBuildAdd(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNSWAdd(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNUWAdd(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFAdd(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSub(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNSWSub(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNUWSub(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFSub(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildMul(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNSWMul(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNUWMul(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFMul(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildUDiv(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildExactUDiv(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSDiv(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildExactSDiv(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFDiv(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildURem(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSRem(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFRem(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildShl(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildLShr(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAShr(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAnd(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildOr(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildXor(_0:LLVMBuilderRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildBinOp(B:LLVMBuilderRef, Op:LLVMOpcode, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNeg(_0:LLVMBuilderRef, V:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNSWNeg(B:LLVMBuilderRef, V:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNUWNeg(B:LLVMBuilderRef, V:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFNeg(_0:LLVMBuilderRef, V:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildNot(_0:LLVMBuilderRef, V:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNUW(ArithInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetNUW(ArithInst:LLVMValueRef, HasNUW:LLVMBool) -> None: ...
@dll.bind
def LLVMGetNSW(ArithInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetNSW(ArithInst:LLVMValueRef, HasNSW:LLVMBool) -> None: ...
@dll.bind
def LLVMGetExact(DivOrShrInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetExact(DivOrShrInst:LLVMValueRef, IsExact:LLVMBool) -> None: ...
@dll.bind
def LLVMGetNNeg(NonNegInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetNNeg(NonNegInst:LLVMValueRef, IsNonNeg:LLVMBool) -> None: ...
@dll.bind
def LLVMGetFastMathFlags(FPMathInst:LLVMValueRef) -> LLVMFastMathFlags: ...
@dll.bind
def LLVMSetFastMathFlags(FPMathInst:LLVMValueRef, FMF:LLVMFastMathFlags) -> None: ...
@dll.bind
def LLVMCanValueUseFastMathFlags(Inst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetIsDisjoint(Inst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetIsDisjoint(Inst:LLVMValueRef, IsDisjoint:LLVMBool) -> None: ...
@dll.bind
def LLVMBuildMalloc(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildArrayMalloc(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildMemSet(B:LLVMBuilderRef, Ptr:LLVMValueRef, Val:LLVMValueRef, Len:LLVMValueRef, Align:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildMemCpy(B:LLVMBuilderRef, Dst:LLVMValueRef, DstAlign:Annotated[int, ctypes.c_uint32], Src:LLVMValueRef, SrcAlign:Annotated[int, ctypes.c_uint32], Size:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildMemMove(B:LLVMBuilderRef, Dst:LLVMValueRef, DstAlign:Annotated[int, ctypes.c_uint32], Src:LLVMValueRef, SrcAlign:Annotated[int, ctypes.c_uint32], Size:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAlloca(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildArrayAlloca(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFree(_0:LLVMBuilderRef, PointerVal:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildLoad2(_0:LLVMBuilderRef, Ty:LLVMTypeRef, PointerVal:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildStore(_0:LLVMBuilderRef, Val:LLVMValueRef, Ptr:LLVMValueRef) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildGEP2(B:LLVMBuilderRef, Ty:LLVMTypeRef, Pointer:LLVMValueRef, Indices:c.POINTER[LLVMValueRef], NumIndices:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildInBoundsGEP2(B:LLVMBuilderRef, Ty:LLVMTypeRef, Pointer:LLVMValueRef, Indices:c.POINTER[LLVMValueRef], NumIndices:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildGEPWithNoWrapFlags(B:LLVMBuilderRef, Ty:LLVMTypeRef, Pointer:LLVMValueRef, Indices:c.POINTER[LLVMValueRef], NumIndices:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NoWrapFlags:LLVMGEPNoWrapFlags) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildStructGEP2(B:LLVMBuilderRef, Ty:LLVMTypeRef, Pointer:LLVMValueRef, Idx:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildGlobalString(B:LLVMBuilderRef, Str:c.POINTER[Annotated[bytes, ctypes.c_char]], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildGlobalStringPtr(B:LLVMBuilderRef, Str:c.POINTER[Annotated[bytes, ctypes.c_char]], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetVolatile(MemoryAccessInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetVolatile(MemoryAccessInst:LLVMValueRef, IsVolatile:LLVMBool) -> None: ...
@dll.bind
def LLVMGetWeak(CmpXchgInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetWeak(CmpXchgInst:LLVMValueRef, IsWeak:LLVMBool) -> None: ...
@dll.bind
def LLVMGetOrdering(MemoryAccessInst:LLVMValueRef) -> LLVMAtomicOrdering: ...
@dll.bind
def LLVMSetOrdering(MemoryAccessInst:LLVMValueRef, Ordering:LLVMAtomicOrdering) -> None: ...
@dll.bind
def LLVMGetAtomicRMWBinOp(AtomicRMWInst:LLVMValueRef) -> LLVMAtomicRMWBinOp: ...
@dll.bind
def LLVMSetAtomicRMWBinOp(AtomicRMWInst:LLVMValueRef, BinOp:LLVMAtomicRMWBinOp) -> None: ...
@dll.bind
def LLVMBuildTrunc(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildZExt(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSExt(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFPToUI(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFPToSI(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildUIToFP(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSIToFP(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFPTrunc(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFPExt(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildPtrToInt(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildIntToPtr(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildBitCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAddrSpaceCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildZExtOrBitCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSExtOrBitCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildTruncOrBitCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCast(B:LLVMBuilderRef, Op:LLVMOpcode, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildPointerCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildIntCast2(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, IsSigned:LLVMBool, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFPCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildIntCast(_0:LLVMBuilderRef, Val:LLVMValueRef, DestTy:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetCastOpcode(Src:LLVMValueRef, SrcIsSigned:LLVMBool, DestTy:LLVMTypeRef, DestIsSigned:LLVMBool) -> LLVMOpcode: ...
@dll.bind
def LLVMBuildICmp(_0:LLVMBuilderRef, Op:LLVMIntPredicate, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFCmp(_0:LLVMBuilderRef, Op:LLVMRealPredicate, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildPhi(_0:LLVMBuilderRef, Ty:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCall2(_0:LLVMBuilderRef, _1:LLVMTypeRef, Fn:LLVMValueRef, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildCallWithOperandBundles(_0:LLVMBuilderRef, _1:LLVMTypeRef, Fn:LLVMValueRef, Args:c.POINTER[LLVMValueRef], NumArgs:Annotated[int, ctypes.c_uint32], Bundles:c.POINTER[LLVMOperandBundleRef], NumBundles:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildSelect(_0:LLVMBuilderRef, If:LLVMValueRef, Then:LLVMValueRef, Else:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildVAArg(_0:LLVMBuilderRef, List:LLVMValueRef, Ty:LLVMTypeRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildExtractElement(_0:LLVMBuilderRef, VecVal:LLVMValueRef, Index:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildInsertElement(_0:LLVMBuilderRef, VecVal:LLVMValueRef, EltVal:LLVMValueRef, Index:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildShuffleVector(_0:LLVMBuilderRef, V1:LLVMValueRef, V2:LLVMValueRef, Mask:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildExtractValue(_0:LLVMBuilderRef, AggVal:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildInsertValue(_0:LLVMBuilderRef, AggVal:LLVMValueRef, EltVal:LLVMValueRef, Index:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFreeze(_0:LLVMBuilderRef, Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildIsNull(_0:LLVMBuilderRef, Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildIsNotNull(_0:LLVMBuilderRef, Val:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildPtrDiff2(_0:LLVMBuilderRef, ElemTy:LLVMTypeRef, LHS:LLVMValueRef, RHS:LLVMValueRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFence(B:LLVMBuilderRef, ordering:LLVMAtomicOrdering, singleThread:LLVMBool, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildFenceSyncScope(B:LLVMBuilderRef, ordering:LLVMAtomicOrdering, SSID:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAtomicRMW(B:LLVMBuilderRef, op:LLVMAtomicRMWBinOp, PTR:LLVMValueRef, Val:LLVMValueRef, ordering:LLVMAtomicOrdering, singleThread:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAtomicRMWSyncScope(B:LLVMBuilderRef, op:LLVMAtomicRMWBinOp, PTR:LLVMValueRef, Val:LLVMValueRef, ordering:LLVMAtomicOrdering, SSID:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAtomicCmpXchg(B:LLVMBuilderRef, Ptr:LLVMValueRef, Cmp:LLVMValueRef, New:LLVMValueRef, SuccessOrdering:LLVMAtomicOrdering, FailureOrdering:LLVMAtomicOrdering, SingleThread:LLVMBool) -> LLVMValueRef: ...
@dll.bind
def LLVMBuildAtomicCmpXchgSyncScope(B:LLVMBuilderRef, Ptr:LLVMValueRef, Cmp:LLVMValueRef, New:LLVMValueRef, SuccessOrdering:LLVMAtomicOrdering, FailureOrdering:LLVMAtomicOrdering, SSID:Annotated[int, ctypes.c_uint32]) -> LLVMValueRef: ...
@dll.bind
def LLVMGetNumMaskElements(ShuffleVectorInst:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetUndefMaskElem() -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMGetMaskValue(ShuffleVectorInst:LLVMValueRef, Elt:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMIsAtomicSingleThread(AtomicInst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMSetAtomicSingleThread(AtomicInst:LLVMValueRef, SingleThread:LLVMBool) -> None: ...
@dll.bind
def LLVMIsAtomic(Inst:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMGetAtomicSyncScopeID(AtomicInst:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMSetAtomicSyncScopeID(AtomicInst:LLVMValueRef, SSID:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMGetCmpXchgSuccessOrdering(CmpXchgInst:LLVMValueRef) -> LLVMAtomicOrdering: ...
@dll.bind
def LLVMSetCmpXchgSuccessOrdering(CmpXchgInst:LLVMValueRef, Ordering:LLVMAtomicOrdering) -> None: ...
@dll.bind
def LLVMGetCmpXchgFailureOrdering(CmpXchgInst:LLVMValueRef) -> LLVMAtomicOrdering: ...
@dll.bind
def LLVMSetCmpXchgFailureOrdering(CmpXchgInst:LLVMValueRef, Ordering:LLVMAtomicOrdering) -> None: ...
class struct_LLVMOpaqueModuleProvider(ctypes.Structure): pass
LLVMModuleProviderRef: TypeAlias = c.POINTER[struct_LLVMOpaqueModuleProvider]
@dll.bind
def LLVMCreateModuleProviderForExistingModule(M:LLVMModuleRef) -> LLVMModuleProviderRef: ...
@dll.bind
def LLVMDisposeModuleProvider(M:LLVMModuleProviderRef) -> None: ...
@dll.bind
def LLVMCreateMemoryBufferWithContentsOfFile(Path:c.POINTER[Annotated[bytes, ctypes.c_char]], OutMemBuf:c.POINTER[LLVMMemoryBufferRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMCreateMemoryBufferWithSTDIN(OutMemBuf:c.POINTER[LLVMMemoryBufferRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMCreateMemoryBufferWithMemoryRange(InputData:c.POINTER[Annotated[bytes, ctypes.c_char]], InputDataLength:size_t, BufferName:c.POINTER[Annotated[bytes, ctypes.c_char]], RequiresNullTerminator:LLVMBool) -> LLVMMemoryBufferRef: ...
@dll.bind
def LLVMCreateMemoryBufferWithMemoryRangeCopy(InputData:c.POINTER[Annotated[bytes, ctypes.c_char]], InputDataLength:size_t, BufferName:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMMemoryBufferRef: ...
@dll.bind
def LLVMGetBufferStart(MemBuf:LLVMMemoryBufferRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetBufferSize(MemBuf:LLVMMemoryBufferRef) -> size_t: ...
@dll.bind
def LLVMDisposeMemoryBuffer(MemBuf:LLVMMemoryBufferRef) -> None: ...
class struct_LLVMOpaquePassManager(ctypes.Structure): pass
LLVMPassManagerRef: TypeAlias = c.POINTER[struct_LLVMOpaquePassManager]
@dll.bind
def LLVMCreatePassManager() -> LLVMPassManagerRef: ...
@dll.bind
def LLVMCreateFunctionPassManagerForModule(M:LLVMModuleRef) -> LLVMPassManagerRef: ...
@dll.bind
def LLVMCreateFunctionPassManager(MP:LLVMModuleProviderRef) -> LLVMPassManagerRef: ...
@dll.bind
def LLVMRunPassManager(PM:LLVMPassManagerRef, M:LLVMModuleRef) -> LLVMBool: ...
@dll.bind
def LLVMInitializeFunctionPassManager(FPM:LLVMPassManagerRef) -> LLVMBool: ...
@dll.bind
def LLVMRunFunctionPassManager(FPM:LLVMPassManagerRef, F:LLVMValueRef) -> LLVMBool: ...
@dll.bind
def LLVMFinalizeFunctionPassManager(FPM:LLVMPassManagerRef) -> LLVMBool: ...
@dll.bind
def LLVMDisposePassManager(PM:LLVMPassManagerRef) -> None: ...
@dll.bind
def LLVMStartMultithreaded() -> LLVMBool: ...
@dll.bind
def LLVMStopMultithreaded() -> None: ...
@dll.bind
def LLVMIsMultithreaded() -> LLVMBool: ...
class LLVMDIFlags(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDIFlagZero = LLVMDIFlags.define('LLVMDIFlagZero', 0)
LLVMDIFlagPrivate = LLVMDIFlags.define('LLVMDIFlagPrivate', 1)
LLVMDIFlagProtected = LLVMDIFlags.define('LLVMDIFlagProtected', 2)
LLVMDIFlagPublic = LLVMDIFlags.define('LLVMDIFlagPublic', 3)
LLVMDIFlagFwdDecl = LLVMDIFlags.define('LLVMDIFlagFwdDecl', 4)
LLVMDIFlagAppleBlock = LLVMDIFlags.define('LLVMDIFlagAppleBlock', 8)
LLVMDIFlagReservedBit4 = LLVMDIFlags.define('LLVMDIFlagReservedBit4', 16)
LLVMDIFlagVirtual = LLVMDIFlags.define('LLVMDIFlagVirtual', 32)
LLVMDIFlagArtificial = LLVMDIFlags.define('LLVMDIFlagArtificial', 64)
LLVMDIFlagExplicit = LLVMDIFlags.define('LLVMDIFlagExplicit', 128)
LLVMDIFlagPrototyped = LLVMDIFlags.define('LLVMDIFlagPrototyped', 256)
LLVMDIFlagObjcClassComplete = LLVMDIFlags.define('LLVMDIFlagObjcClassComplete', 512)
LLVMDIFlagObjectPointer = LLVMDIFlags.define('LLVMDIFlagObjectPointer', 1024)
LLVMDIFlagVector = LLVMDIFlags.define('LLVMDIFlagVector', 2048)
LLVMDIFlagStaticMember = LLVMDIFlags.define('LLVMDIFlagStaticMember', 4096)
LLVMDIFlagLValueReference = LLVMDIFlags.define('LLVMDIFlagLValueReference', 8192)
LLVMDIFlagRValueReference = LLVMDIFlags.define('LLVMDIFlagRValueReference', 16384)
LLVMDIFlagReserved = LLVMDIFlags.define('LLVMDIFlagReserved', 32768)
LLVMDIFlagSingleInheritance = LLVMDIFlags.define('LLVMDIFlagSingleInheritance', 65536)
LLVMDIFlagMultipleInheritance = LLVMDIFlags.define('LLVMDIFlagMultipleInheritance', 131072)
LLVMDIFlagVirtualInheritance = LLVMDIFlags.define('LLVMDIFlagVirtualInheritance', 196608)
LLVMDIFlagIntroducedVirtual = LLVMDIFlags.define('LLVMDIFlagIntroducedVirtual', 262144)
LLVMDIFlagBitField = LLVMDIFlags.define('LLVMDIFlagBitField', 524288)
LLVMDIFlagNoReturn = LLVMDIFlags.define('LLVMDIFlagNoReturn', 1048576)
LLVMDIFlagTypePassByValue = LLVMDIFlags.define('LLVMDIFlagTypePassByValue', 4194304)
LLVMDIFlagTypePassByReference = LLVMDIFlags.define('LLVMDIFlagTypePassByReference', 8388608)
LLVMDIFlagEnumClass = LLVMDIFlags.define('LLVMDIFlagEnumClass', 16777216)
LLVMDIFlagFixedEnum = LLVMDIFlags.define('LLVMDIFlagFixedEnum', 16777216)
LLVMDIFlagThunk = LLVMDIFlags.define('LLVMDIFlagThunk', 33554432)
LLVMDIFlagNonTrivial = LLVMDIFlags.define('LLVMDIFlagNonTrivial', 67108864)
LLVMDIFlagBigEndian = LLVMDIFlags.define('LLVMDIFlagBigEndian', 134217728)
LLVMDIFlagLittleEndian = LLVMDIFlags.define('LLVMDIFlagLittleEndian', 268435456)
LLVMDIFlagIndirectVirtualBase = LLVMDIFlags.define('LLVMDIFlagIndirectVirtualBase', 36)
LLVMDIFlagAccessibility = LLVMDIFlags.define('LLVMDIFlagAccessibility', 3)
LLVMDIFlagPtrToMemberRep = LLVMDIFlags.define('LLVMDIFlagPtrToMemberRep', 196608)

class LLVMDWARFSourceLanguage(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDWARFSourceLanguageC89 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC89', 0)
LLVMDWARFSourceLanguageC = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC', 1)
LLVMDWARFSourceLanguageAda83 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageAda83', 2)
LLVMDWARFSourceLanguageC_plus_plus = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_plus_plus', 3)
LLVMDWARFSourceLanguageCobol74 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageCobol74', 4)
LLVMDWARFSourceLanguageCobol85 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageCobol85', 5)
LLVMDWARFSourceLanguageFortran77 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageFortran77', 6)
LLVMDWARFSourceLanguageFortran90 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageFortran90', 7)
LLVMDWARFSourceLanguagePascal83 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguagePascal83', 8)
LLVMDWARFSourceLanguageModula2 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageModula2', 9)
LLVMDWARFSourceLanguageJava = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageJava', 10)
LLVMDWARFSourceLanguageC99 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC99', 11)
LLVMDWARFSourceLanguageAda95 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageAda95', 12)
LLVMDWARFSourceLanguageFortran95 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageFortran95', 13)
LLVMDWARFSourceLanguagePLI = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguagePLI', 14)
LLVMDWARFSourceLanguageObjC = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageObjC', 15)
LLVMDWARFSourceLanguageObjC_plus_plus = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageObjC_plus_plus', 16)
LLVMDWARFSourceLanguageUPC = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageUPC', 17)
LLVMDWARFSourceLanguageD = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageD', 18)
LLVMDWARFSourceLanguagePython = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguagePython', 19)
LLVMDWARFSourceLanguageOpenCL = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageOpenCL', 20)
LLVMDWARFSourceLanguageGo = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageGo', 21)
LLVMDWARFSourceLanguageModula3 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageModula3', 22)
LLVMDWARFSourceLanguageHaskell = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageHaskell', 23)
LLVMDWARFSourceLanguageC_plus_plus_03 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_plus_plus_03', 24)
LLVMDWARFSourceLanguageC_plus_plus_11 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_plus_plus_11', 25)
LLVMDWARFSourceLanguageOCaml = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageOCaml', 26)
LLVMDWARFSourceLanguageRust = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageRust', 27)
LLVMDWARFSourceLanguageC11 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC11', 28)
LLVMDWARFSourceLanguageSwift = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageSwift', 29)
LLVMDWARFSourceLanguageJulia = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageJulia', 30)
LLVMDWARFSourceLanguageDylan = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageDylan', 31)
LLVMDWARFSourceLanguageC_plus_plus_14 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_plus_plus_14', 32)
LLVMDWARFSourceLanguageFortran03 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageFortran03', 33)
LLVMDWARFSourceLanguageFortran08 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageFortran08', 34)
LLVMDWARFSourceLanguageRenderScript = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageRenderScript', 35)
LLVMDWARFSourceLanguageBLISS = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageBLISS', 36)
LLVMDWARFSourceLanguageKotlin = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageKotlin', 37)
LLVMDWARFSourceLanguageZig = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageZig', 38)
LLVMDWARFSourceLanguageCrystal = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageCrystal', 39)
LLVMDWARFSourceLanguageC_plus_plus_17 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_plus_plus_17', 40)
LLVMDWARFSourceLanguageC_plus_plus_20 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_plus_plus_20', 41)
LLVMDWARFSourceLanguageC17 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC17', 42)
LLVMDWARFSourceLanguageFortran18 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageFortran18', 43)
LLVMDWARFSourceLanguageAda2005 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageAda2005', 44)
LLVMDWARFSourceLanguageAda2012 = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageAda2012', 45)
LLVMDWARFSourceLanguageHIP = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageHIP', 46)
LLVMDWARFSourceLanguageAssembly = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageAssembly', 47)
LLVMDWARFSourceLanguageC_sharp = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageC_sharp', 48)
LLVMDWARFSourceLanguageMojo = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageMojo', 49)
LLVMDWARFSourceLanguageGLSL = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageGLSL', 50)
LLVMDWARFSourceLanguageGLSL_ES = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageGLSL_ES', 51)
LLVMDWARFSourceLanguageHLSL = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageHLSL', 52)
LLVMDWARFSourceLanguageOpenCL_CPP = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageOpenCL_CPP', 53)
LLVMDWARFSourceLanguageCPP_for_OpenCL = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageCPP_for_OpenCL', 54)
LLVMDWARFSourceLanguageSYCL = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageSYCL', 55)
LLVMDWARFSourceLanguageRuby = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageRuby', 56)
LLVMDWARFSourceLanguageMove = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageMove', 57)
LLVMDWARFSourceLanguageHylo = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageHylo', 58)
LLVMDWARFSourceLanguageMetal = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageMetal', 59)
LLVMDWARFSourceLanguageMips_Assembler = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageMips_Assembler', 60)
LLVMDWARFSourceLanguageGOOGLE_RenderScript = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageGOOGLE_RenderScript', 61)
LLVMDWARFSourceLanguageBORLAND_Delphi = LLVMDWARFSourceLanguage.define('LLVMDWARFSourceLanguageBORLAND_Delphi', 62)

class LLVMDWARFEmissionKind(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDWARFEmissionNone = LLVMDWARFEmissionKind.define('LLVMDWARFEmissionNone', 0)
LLVMDWARFEmissionFull = LLVMDWARFEmissionKind.define('LLVMDWARFEmissionFull', 1)
LLVMDWARFEmissionLineTablesOnly = LLVMDWARFEmissionKind.define('LLVMDWARFEmissionLineTablesOnly', 2)

class _anonenum3(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMMDStringMetadataKind = _anonenum3.define('LLVMMDStringMetadataKind', 0)
LLVMConstantAsMetadataMetadataKind = _anonenum3.define('LLVMConstantAsMetadataMetadataKind', 1)
LLVMLocalAsMetadataMetadataKind = _anonenum3.define('LLVMLocalAsMetadataMetadataKind', 2)
LLVMDistinctMDOperandPlaceholderMetadataKind = _anonenum3.define('LLVMDistinctMDOperandPlaceholderMetadataKind', 3)
LLVMMDTupleMetadataKind = _anonenum3.define('LLVMMDTupleMetadataKind', 4)
LLVMDILocationMetadataKind = _anonenum3.define('LLVMDILocationMetadataKind', 5)
LLVMDIExpressionMetadataKind = _anonenum3.define('LLVMDIExpressionMetadataKind', 6)
LLVMDIGlobalVariableExpressionMetadataKind = _anonenum3.define('LLVMDIGlobalVariableExpressionMetadataKind', 7)
LLVMGenericDINodeMetadataKind = _anonenum3.define('LLVMGenericDINodeMetadataKind', 8)
LLVMDISubrangeMetadataKind = _anonenum3.define('LLVMDISubrangeMetadataKind', 9)
LLVMDIEnumeratorMetadataKind = _anonenum3.define('LLVMDIEnumeratorMetadataKind', 10)
LLVMDIBasicTypeMetadataKind = _anonenum3.define('LLVMDIBasicTypeMetadataKind', 11)
LLVMDIDerivedTypeMetadataKind = _anonenum3.define('LLVMDIDerivedTypeMetadataKind', 12)
LLVMDICompositeTypeMetadataKind = _anonenum3.define('LLVMDICompositeTypeMetadataKind', 13)
LLVMDISubroutineTypeMetadataKind = _anonenum3.define('LLVMDISubroutineTypeMetadataKind', 14)
LLVMDIFileMetadataKind = _anonenum3.define('LLVMDIFileMetadataKind', 15)
LLVMDICompileUnitMetadataKind = _anonenum3.define('LLVMDICompileUnitMetadataKind', 16)
LLVMDISubprogramMetadataKind = _anonenum3.define('LLVMDISubprogramMetadataKind', 17)
LLVMDILexicalBlockMetadataKind = _anonenum3.define('LLVMDILexicalBlockMetadataKind', 18)
LLVMDILexicalBlockFileMetadataKind = _anonenum3.define('LLVMDILexicalBlockFileMetadataKind', 19)
LLVMDINamespaceMetadataKind = _anonenum3.define('LLVMDINamespaceMetadataKind', 20)
LLVMDIModuleMetadataKind = _anonenum3.define('LLVMDIModuleMetadataKind', 21)
LLVMDITemplateTypeParameterMetadataKind = _anonenum3.define('LLVMDITemplateTypeParameterMetadataKind', 22)
LLVMDITemplateValueParameterMetadataKind = _anonenum3.define('LLVMDITemplateValueParameterMetadataKind', 23)
LLVMDIGlobalVariableMetadataKind = _anonenum3.define('LLVMDIGlobalVariableMetadataKind', 24)
LLVMDILocalVariableMetadataKind = _anonenum3.define('LLVMDILocalVariableMetadataKind', 25)
LLVMDILabelMetadataKind = _anonenum3.define('LLVMDILabelMetadataKind', 26)
LLVMDIObjCPropertyMetadataKind = _anonenum3.define('LLVMDIObjCPropertyMetadataKind', 27)
LLVMDIImportedEntityMetadataKind = _anonenum3.define('LLVMDIImportedEntityMetadataKind', 28)
LLVMDIMacroMetadataKind = _anonenum3.define('LLVMDIMacroMetadataKind', 29)
LLVMDIMacroFileMetadataKind = _anonenum3.define('LLVMDIMacroFileMetadataKind', 30)
LLVMDICommonBlockMetadataKind = _anonenum3.define('LLVMDICommonBlockMetadataKind', 31)
LLVMDIStringTypeMetadataKind = _anonenum3.define('LLVMDIStringTypeMetadataKind', 32)
LLVMDIGenericSubrangeMetadataKind = _anonenum3.define('LLVMDIGenericSubrangeMetadataKind', 33)
LLVMDIArgListMetadataKind = _anonenum3.define('LLVMDIArgListMetadataKind', 34)
LLVMDIAssignIDMetadataKind = _anonenum3.define('LLVMDIAssignIDMetadataKind', 35)

LLVMMetadataKind: TypeAlias = Annotated[int, ctypes.c_uint32]
LLVMDWARFTypeEncoding: TypeAlias = Annotated[int, ctypes.c_uint32]
class LLVMDWARFMacinfoRecordType(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMDWARFMacinfoRecordTypeDefine = LLVMDWARFMacinfoRecordType.define('LLVMDWARFMacinfoRecordTypeDefine', 1)
LLVMDWARFMacinfoRecordTypeMacro = LLVMDWARFMacinfoRecordType.define('LLVMDWARFMacinfoRecordTypeMacro', 2)
LLVMDWARFMacinfoRecordTypeStartFile = LLVMDWARFMacinfoRecordType.define('LLVMDWARFMacinfoRecordTypeStartFile', 3)
LLVMDWARFMacinfoRecordTypeEndFile = LLVMDWARFMacinfoRecordType.define('LLVMDWARFMacinfoRecordTypeEndFile', 4)
LLVMDWARFMacinfoRecordTypeVendorExt = LLVMDWARFMacinfoRecordType.define('LLVMDWARFMacinfoRecordTypeVendorExt', 255)

@dll.bind
def LLVMDebugMetadataVersion() -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGetModuleDebugMetadataVersion(Module:LLVMModuleRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMStripModuleDebugInfo(Module:LLVMModuleRef) -> LLVMBool: ...
class struct_LLVMOpaqueDIBuilder(ctypes.Structure): pass
LLVMDIBuilderRef: TypeAlias = c.POINTER[struct_LLVMOpaqueDIBuilder]
@dll.bind
def LLVMCreateDIBuilderDisallowUnresolved(M:LLVMModuleRef) -> LLVMDIBuilderRef: ...
@dll.bind
def LLVMCreateDIBuilder(M:LLVMModuleRef) -> LLVMDIBuilderRef: ...
@dll.bind
def LLVMDisposeDIBuilder(Builder:LLVMDIBuilderRef) -> None: ...
@dll.bind
def LLVMDIBuilderFinalize(Builder:LLVMDIBuilderRef) -> None: ...
@dll.bind
def LLVMDIBuilderFinalizeSubprogram(Builder:LLVMDIBuilderRef, Subprogram:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMDIBuilderCreateCompileUnit(Builder:LLVMDIBuilderRef, Lang:LLVMDWARFSourceLanguage, FileRef:LLVMMetadataRef, Producer:c.POINTER[Annotated[bytes, ctypes.c_char]], ProducerLen:size_t, isOptimized:LLVMBool, Flags:c.POINTER[Annotated[bytes, ctypes.c_char]], FlagsLen:size_t, RuntimeVer:Annotated[int, ctypes.c_uint32], SplitName:c.POINTER[Annotated[bytes, ctypes.c_char]], SplitNameLen:size_t, Kind:LLVMDWARFEmissionKind, DWOId:Annotated[int, ctypes.c_uint32], SplitDebugInlining:LLVMBool, DebugInfoForProfiling:LLVMBool, SysRoot:c.POINTER[Annotated[bytes, ctypes.c_char]], SysRootLen:size_t, SDK:c.POINTER[Annotated[bytes, ctypes.c_char]], SDKLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateFile(Builder:LLVMDIBuilderRef, Filename:c.POINTER[Annotated[bytes, ctypes.c_char]], FilenameLen:size_t, Directory:c.POINTER[Annotated[bytes, ctypes.c_char]], DirectoryLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateModule(Builder:LLVMDIBuilderRef, ParentScope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, ConfigMacros:c.POINTER[Annotated[bytes, ctypes.c_char]], ConfigMacrosLen:size_t, IncludePath:c.POINTER[Annotated[bytes, ctypes.c_char]], IncludePathLen:size_t, APINotesFile:c.POINTER[Annotated[bytes, ctypes.c_char]], APINotesFileLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateNameSpace(Builder:LLVMDIBuilderRef, ParentScope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, ExportSymbols:LLVMBool) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateFunction(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, LinkageName:c.POINTER[Annotated[bytes, ctypes.c_char]], LinkageNameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], Ty:LLVMMetadataRef, IsLocalToUnit:LLVMBool, IsDefinition:LLVMBool, ScopeLine:Annotated[int, ctypes.c_uint32], Flags:LLVMDIFlags, IsOptimized:LLVMBool) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateLexicalBlock(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], Column:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateLexicalBlockFile(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, File:LLVMMetadataRef, Discriminator:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateImportedModuleFromNamespace(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, NS:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateImportedModuleFromAlias(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, ImportedEntity:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateImportedModuleFromModule(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, M:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateImportedDeclaration(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Decl:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateDebugLocation(Ctx:LLVMContextRef, Line:Annotated[int, ctypes.c_uint32], Column:Annotated[int, ctypes.c_uint32], Scope:LLVMMetadataRef, InlinedAt:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDILocationGetLine(Location:LLVMMetadataRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMDILocationGetColumn(Location:LLVMMetadataRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMDILocationGetScope(Location:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDILocationGetInlinedAt(Location:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIScopeGetFile(Scope:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIFileGetDirectory(File:LLVMMetadataRef, Len:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMDIFileGetFilename(File:LLVMMetadataRef, Len:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMDIFileGetSource(File:LLVMMetadataRef, Len:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMDIBuilderGetOrCreateTypeArray(Builder:LLVMDIBuilderRef, Data:c.POINTER[LLVMMetadataRef], NumElements:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateSubroutineType(Builder:LLVMDIBuilderRef, File:LLVMMetadataRef, ParameterTypes:c.POINTER[LLVMMetadataRef], NumParameterTypes:Annotated[int, ctypes.c_uint32], Flags:LLVMDIFlags) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateMacro(Builder:LLVMDIBuilderRef, ParentMacroFile:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], RecordType:LLVMDWARFMacinfoRecordType, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Value:c.POINTER[Annotated[bytes, ctypes.c_char]], ValueLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateTempMacroFile(Builder:LLVMDIBuilderRef, ParentMacroFile:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], File:LLVMMetadataRef) -> LLVMMetadataRef: ...
int64_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
def LLVMDIBuilderCreateEnumerator(Builder:LLVMDIBuilderRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Value:int64_t, IsUnsigned:LLVMBool) -> LLVMMetadataRef: ...
uint32_t: TypeAlias = Annotated[int, ctypes.c_uint32]
@dll.bind
def LLVMDIBuilderCreateEnumerationType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNumber:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32], ClassTy:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateUnionType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNumber:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, Flags:LLVMDIFlags, Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32], RunTimeLang:Annotated[int, ctypes.c_uint32], UniqueId:c.POINTER[Annotated[bytes, ctypes.c_char]], UniqueIdLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateArrayType(Builder:LLVMDIBuilderRef, Size:uint64_t, AlignInBits:uint32_t, Ty:LLVMMetadataRef, Subscripts:c.POINTER[LLVMMetadataRef], NumSubscripts:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateVectorType(Builder:LLVMDIBuilderRef, Size:uint64_t, AlignInBits:uint32_t, Ty:LLVMMetadataRef, Subscripts:c.POINTER[LLVMMetadataRef], NumSubscripts:Annotated[int, ctypes.c_uint32]) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateUnspecifiedType(Builder:LLVMDIBuilderRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateBasicType(Builder:LLVMDIBuilderRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, SizeInBits:uint64_t, Encoding:LLVMDWARFTypeEncoding, Flags:LLVMDIFlags) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreatePointerType(Builder:LLVMDIBuilderRef, PointeeTy:LLVMMetadataRef, SizeInBits:uint64_t, AlignInBits:uint32_t, AddressSpace:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateStructType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNumber:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, Flags:LLVMDIFlags, DerivedFrom:LLVMMetadataRef, Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32], RunTimeLang:Annotated[int, ctypes.c_uint32], VTableHolder:LLVMMetadataRef, UniqueId:c.POINTER[Annotated[bytes, ctypes.c_char]], UniqueIdLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateMemberType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, OffsetInBits:uint64_t, Flags:LLVMDIFlags, Ty:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateStaticMemberType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNumber:Annotated[int, ctypes.c_uint32], Type:LLVMMetadataRef, Flags:LLVMDIFlags, ConstantVal:LLVMValueRef, AlignInBits:uint32_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateMemberPointerType(Builder:LLVMDIBuilderRef, PointeeType:LLVMMetadataRef, ClassType:LLVMMetadataRef, SizeInBits:uint64_t, AlignInBits:uint32_t, Flags:LLVMDIFlags) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateObjCIVar(Builder:LLVMDIBuilderRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, OffsetInBits:uint64_t, Flags:LLVMDIFlags, Ty:LLVMMetadataRef, PropertyNode:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateObjCProperty(Builder:LLVMDIBuilderRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], GetterName:c.POINTER[Annotated[bytes, ctypes.c_char]], GetterNameLen:size_t, SetterName:c.POINTER[Annotated[bytes, ctypes.c_char]], SetterNameLen:size_t, PropertyAttributes:Annotated[int, ctypes.c_uint32], Ty:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateObjectPointerType(Builder:LLVMDIBuilderRef, Type:LLVMMetadataRef, Implicit:LLVMBool) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateQualifiedType(Builder:LLVMDIBuilderRef, Tag:Annotated[int, ctypes.c_uint32], Type:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateReferenceType(Builder:LLVMDIBuilderRef, Tag:Annotated[int, ctypes.c_uint32], Type:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateNullPtrType(Builder:LLVMDIBuilderRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateTypedef(Builder:LLVMDIBuilderRef, Type:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], Scope:LLVMMetadataRef, AlignInBits:uint32_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateInheritance(Builder:LLVMDIBuilderRef, Ty:LLVMMetadataRef, BaseTy:LLVMMetadataRef, BaseOffset:uint64_t, VBPtrOffset:uint32_t, Flags:LLVMDIFlags) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateForwardDecl(Builder:LLVMDIBuilderRef, Tag:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Scope:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], RuntimeLang:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, UniqueIdentifier:c.POINTER[Annotated[bytes, ctypes.c_char]], UniqueIdentifierLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateReplaceableCompositeType(Builder:LLVMDIBuilderRef, Tag:Annotated[int, ctypes.c_uint32], Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Scope:LLVMMetadataRef, File:LLVMMetadataRef, Line:Annotated[int, ctypes.c_uint32], RuntimeLang:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, Flags:LLVMDIFlags, UniqueIdentifier:c.POINTER[Annotated[bytes, ctypes.c_char]], UniqueIdentifierLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateBitFieldMemberType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNumber:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, OffsetInBits:uint64_t, StorageOffsetInBits:uint64_t, Flags:LLVMDIFlags, Type:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateClassType(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNumber:Annotated[int, ctypes.c_uint32], SizeInBits:uint64_t, AlignInBits:uint32_t, OffsetInBits:uint64_t, Flags:LLVMDIFlags, DerivedFrom:LLVMMetadataRef, Elements:c.POINTER[LLVMMetadataRef], NumElements:Annotated[int, ctypes.c_uint32], VTableHolder:LLVMMetadataRef, TemplateParamsNode:LLVMMetadataRef, UniqueIdentifier:c.POINTER[Annotated[bytes, ctypes.c_char]], UniqueIdentifierLen:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateArtificialType(Builder:LLVMDIBuilderRef, Type:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDITypeGetName(DType:LLVMMetadataRef, Length:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMDITypeGetSizeInBits(DType:LLVMMetadataRef) -> uint64_t: ...
@dll.bind
def LLVMDITypeGetOffsetInBits(DType:LLVMMetadataRef) -> uint64_t: ...
@dll.bind
def LLVMDITypeGetAlignInBits(DType:LLVMMetadataRef) -> uint32_t: ...
@dll.bind
def LLVMDITypeGetLine(DType:LLVMMetadataRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMDITypeGetFlags(DType:LLVMMetadataRef) -> LLVMDIFlags: ...
@dll.bind
def LLVMDIBuilderGetOrCreateSubrange(Builder:LLVMDIBuilderRef, LowerBound:int64_t, Count:int64_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderGetOrCreateArray(Builder:LLVMDIBuilderRef, Data:c.POINTER[LLVMMetadataRef], NumElements:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateExpression(Builder:LLVMDIBuilderRef, Addr:c.POINTER[uint64_t], Length:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateConstantValueExpression(Builder:LLVMDIBuilderRef, Value:uint64_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateGlobalVariableExpression(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Linkage:c.POINTER[Annotated[bytes, ctypes.c_char]], LinkLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], Ty:LLVMMetadataRef, LocalToUnit:LLVMBool, Expr:LLVMMetadataRef, Decl:LLVMMetadataRef, AlignInBits:uint32_t) -> LLVMMetadataRef: ...
uint16_t: TypeAlias = Annotated[int, ctypes.c_uint16]
@dll.bind
def LLVMGetDINodeTag(MD:LLVMMetadataRef) -> uint16_t: ...
@dll.bind
def LLVMDIGlobalVariableExpressionGetVariable(GVE:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIGlobalVariableExpressionGetExpression(GVE:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIVariableGetFile(Var:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIVariableGetScope(Var:LLVMMetadataRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIVariableGetLine(Var:LLVMMetadataRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMTemporaryMDNode(Ctx:LLVMContextRef, Data:c.POINTER[LLVMMetadataRef], NumElements:size_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDisposeTemporaryMDNode(TempNode:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMMetadataReplaceAllUsesWith(TempTargetMetadata:LLVMMetadataRef, Replacement:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMDIBuilderCreateTempGlobalVariableFwdDecl(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, Linkage:c.POINTER[Annotated[bytes, ctypes.c_char]], LnkLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], Ty:LLVMMetadataRef, LocalToUnit:LLVMBool, Decl:LLVMMetadataRef, AlignInBits:uint32_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderInsertDeclareRecordBefore(Builder:LLVMDIBuilderRef, Storage:LLVMValueRef, VarInfo:LLVMMetadataRef, Expr:LLVMMetadataRef, DebugLoc:LLVMMetadataRef, Instr:LLVMValueRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMDIBuilderInsertDeclareRecordAtEnd(Builder:LLVMDIBuilderRef, Storage:LLVMValueRef, VarInfo:LLVMMetadataRef, Expr:LLVMMetadataRef, DebugLoc:LLVMMetadataRef, Block:LLVMBasicBlockRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMDIBuilderInsertDbgValueRecordBefore(Builder:LLVMDIBuilderRef, Val:LLVMValueRef, VarInfo:LLVMMetadataRef, Expr:LLVMMetadataRef, DebugLoc:LLVMMetadataRef, Instr:LLVMValueRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMDIBuilderInsertDbgValueRecordAtEnd(Builder:LLVMDIBuilderRef, Val:LLVMValueRef, VarInfo:LLVMMetadataRef, Expr:LLVMMetadataRef, DebugLoc:LLVMMetadataRef, Block:LLVMBasicBlockRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMDIBuilderCreateAutoVariable(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], Ty:LLVMMetadataRef, AlwaysPreserve:LLVMBool, Flags:LLVMDIFlags, AlignInBits:uint32_t) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderCreateParameterVariable(Builder:LLVMDIBuilderRef, Scope:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, ArgNo:Annotated[int, ctypes.c_uint32], File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], Ty:LLVMMetadataRef, AlwaysPreserve:LLVMBool, Flags:LLVMDIFlags) -> LLVMMetadataRef: ...
@dll.bind
def LLVMGetSubprogram(Func:LLVMValueRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMSetSubprogram(Func:LLVMValueRef, SP:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMDISubprogramGetLine(Subprogram:LLVMMetadataRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMInstructionGetDebugLoc(Inst:LLVMValueRef) -> LLVMMetadataRef: ...
@dll.bind
def LLVMInstructionSetDebugLoc(Inst:LLVMValueRef, Loc:LLVMMetadataRef) -> None: ...
@dll.bind
def LLVMDIBuilderCreateLabel(Builder:LLVMDIBuilderRef, Context:LLVMMetadataRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], NameLen:size_t, File:LLVMMetadataRef, LineNo:Annotated[int, ctypes.c_uint32], AlwaysPreserve:LLVMBool) -> LLVMMetadataRef: ...
@dll.bind
def LLVMDIBuilderInsertLabelBefore(Builder:LLVMDIBuilderRef, LabelInfo:LLVMMetadataRef, Location:LLVMMetadataRef, InsertBefore:LLVMValueRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMDIBuilderInsertLabelAtEnd(Builder:LLVMDIBuilderRef, LabelInfo:LLVMMetadataRef, Location:LLVMMetadataRef, InsertAtEnd:LLVMBasicBlockRef) -> LLVMDbgRecordRef: ...
@dll.bind
def LLVMGetMetadataKind(Metadata:LLVMMetadataRef) -> LLVMMetadataKind: ...
LLVMOpInfoCallback: TypeAlias = c.CFUNCTYPE[Annotated[int, ctypes.c_int32], [ctypes.c_void_p, Annotated[int, ctypes.c_uint64], Annotated[int, ctypes.c_uint64], Annotated[int, ctypes.c_uint64], Annotated[int, ctypes.c_uint64], Annotated[int, ctypes.c_int32], ctypes.c_void_p]]
LLVMSymbolLookupCallback: TypeAlias = c.CFUNCTYPE[c.POINTER[Annotated[bytes, ctypes.c_char]], [ctypes.c_void_p, Annotated[int, ctypes.c_uint64], c.POINTER[Annotated[int, ctypes.c_uint64]], Annotated[int, ctypes.c_uint64], c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]]]
LLVMDisasmContextRef: TypeAlias = ctypes.c_void_p
@dll.bind
def LLVMCreateDisasm(TripleName:c.POINTER[Annotated[bytes, ctypes.c_char]], DisInfo:ctypes.c_void_p, TagType:Annotated[int, ctypes.c_int32], GetOpInfo:LLVMOpInfoCallback, SymbolLookUp:LLVMSymbolLookupCallback) -> LLVMDisasmContextRef: ...
@dll.bind
def LLVMCreateDisasmCPU(Triple:c.POINTER[Annotated[bytes, ctypes.c_char]], CPU:c.POINTER[Annotated[bytes, ctypes.c_char]], DisInfo:ctypes.c_void_p, TagType:Annotated[int, ctypes.c_int32], GetOpInfo:LLVMOpInfoCallback, SymbolLookUp:LLVMSymbolLookupCallback) -> LLVMDisasmContextRef: ...
@dll.bind
def LLVMCreateDisasmCPUFeatures(Triple:c.POINTER[Annotated[bytes, ctypes.c_char]], CPU:c.POINTER[Annotated[bytes, ctypes.c_char]], Features:c.POINTER[Annotated[bytes, ctypes.c_char]], DisInfo:ctypes.c_void_p, TagType:Annotated[int, ctypes.c_int32], GetOpInfo:LLVMOpInfoCallback, SymbolLookUp:LLVMSymbolLookupCallback) -> LLVMDisasmContextRef: ...
@dll.bind
def LLVMSetDisasmOptions(DC:LLVMDisasmContextRef, Options:uint64_t) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMDisasmDispose(DC:LLVMDisasmContextRef) -> None: ...
@dll.bind
def LLVMDisasmInstruction(DC:LLVMDisasmContextRef, Bytes:c.POINTER[uint8_t], BytesSize:uint64_t, PC:uint64_t, OutString:c.POINTER[Annotated[bytes, ctypes.c_char]], OutStringSize:size_t) -> size_t: ...
@c.record
class struct_LLVMOpInfoSymbol1(c.Struct):
  SIZE = 24
  Present: Annotated[uint64_t, 0]
  Name: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 8]
  Value: Annotated[uint64_t, 16]
@c.record
class struct_LLVMOpInfo1(c.Struct):
  SIZE = 64
  AddSymbol: Annotated[struct_LLVMOpInfoSymbol1, 0]
  SubtractSymbol: Annotated[struct_LLVMOpInfoSymbol1, 24]
  Value: Annotated[uint64_t, 48]
  VariantKind: Annotated[uint64_t, 56]
class struct_LLVMOpaqueError(ctypes.Structure): pass
LLVMErrorRef: TypeAlias = c.POINTER[struct_LLVMOpaqueError]
LLVMErrorTypeId: TypeAlias = ctypes.c_void_p
@dll.bind
def LLVMGetErrorTypeId(Err:LLVMErrorRef) -> LLVMErrorTypeId: ...
@dll.bind
def LLVMConsumeError(Err:LLVMErrorRef) -> None: ...
@dll.bind
def LLVMCantFail(Err:LLVMErrorRef) -> None: ...
@dll.bind
def LLVMGetErrorMessage(Err:LLVMErrorRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMDisposeErrorMessage(ErrMsg:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMGetStringErrorTypeId() -> LLVMErrorTypeId: ...
@dll.bind
def LLVMCreateStringError(ErrMsg:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMErrorRef: ...
@dll.bind
def LLVMInitializeAArch64TargetInfo() -> None: ...
@dll.bind
def LLVMInitializeAMDGPUTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeARMTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeAVRTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeBPFTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeHexagonTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeLanaiTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeLoongArchTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeMipsTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeMSP430TargetInfo() -> None: ...
@dll.bind
def LLVMInitializeNVPTXTargetInfo() -> None: ...
@dll.bind
def LLVMInitializePowerPCTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeRISCVTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeSparcTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeSPIRVTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeSystemZTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeVETargetInfo() -> None: ...
@dll.bind
def LLVMInitializeWebAssemblyTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeX86TargetInfo() -> None: ...
@dll.bind
def LLVMInitializeXCoreTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeM68kTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeXtensaTargetInfo() -> None: ...
@dll.bind
def LLVMInitializeAArch64Target() -> None: ...
@dll.bind
def LLVMInitializeAMDGPUTarget() -> None: ...
@dll.bind
def LLVMInitializeARMTarget() -> None: ...
@dll.bind
def LLVMInitializeAVRTarget() -> None: ...
@dll.bind
def LLVMInitializeBPFTarget() -> None: ...
@dll.bind
def LLVMInitializeHexagonTarget() -> None: ...
@dll.bind
def LLVMInitializeLanaiTarget() -> None: ...
@dll.bind
def LLVMInitializeLoongArchTarget() -> None: ...
@dll.bind
def LLVMInitializeMipsTarget() -> None: ...
@dll.bind
def LLVMInitializeMSP430Target() -> None: ...
@dll.bind
def LLVMInitializeNVPTXTarget() -> None: ...
@dll.bind
def LLVMInitializePowerPCTarget() -> None: ...
@dll.bind
def LLVMInitializeRISCVTarget() -> None: ...
@dll.bind
def LLVMInitializeSparcTarget() -> None: ...
@dll.bind
def LLVMInitializeSPIRVTarget() -> None: ...
@dll.bind
def LLVMInitializeSystemZTarget() -> None: ...
@dll.bind
def LLVMInitializeVETarget() -> None: ...
@dll.bind
def LLVMInitializeWebAssemblyTarget() -> None: ...
@dll.bind
def LLVMInitializeX86Target() -> None: ...
@dll.bind
def LLVMInitializeXCoreTarget() -> None: ...
@dll.bind
def LLVMInitializeM68kTarget() -> None: ...
@dll.bind
def LLVMInitializeXtensaTarget() -> None: ...
@dll.bind
def LLVMInitializeAArch64TargetMC() -> None: ...
@dll.bind
def LLVMInitializeAMDGPUTargetMC() -> None: ...
@dll.bind
def LLVMInitializeARMTargetMC() -> None: ...
@dll.bind
def LLVMInitializeAVRTargetMC() -> None: ...
@dll.bind
def LLVMInitializeBPFTargetMC() -> None: ...
@dll.bind
def LLVMInitializeHexagonTargetMC() -> None: ...
@dll.bind
def LLVMInitializeLanaiTargetMC() -> None: ...
@dll.bind
def LLVMInitializeLoongArchTargetMC() -> None: ...
@dll.bind
def LLVMInitializeMipsTargetMC() -> None: ...
@dll.bind
def LLVMInitializeMSP430TargetMC() -> None: ...
@dll.bind
def LLVMInitializeNVPTXTargetMC() -> None: ...
@dll.bind
def LLVMInitializePowerPCTargetMC() -> None: ...
@dll.bind
def LLVMInitializeRISCVTargetMC() -> None: ...
@dll.bind
def LLVMInitializeSparcTargetMC() -> None: ...
@dll.bind
def LLVMInitializeSPIRVTargetMC() -> None: ...
@dll.bind
def LLVMInitializeSystemZTargetMC() -> None: ...
@dll.bind
def LLVMInitializeVETargetMC() -> None: ...
@dll.bind
def LLVMInitializeWebAssemblyTargetMC() -> None: ...
@dll.bind
def LLVMInitializeX86TargetMC() -> None: ...
@dll.bind
def LLVMInitializeXCoreTargetMC() -> None: ...
@dll.bind
def LLVMInitializeM68kTargetMC() -> None: ...
@dll.bind
def LLVMInitializeXtensaTargetMC() -> None: ...
@dll.bind
def LLVMInitializeAArch64AsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeAMDGPUAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeARMAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeAVRAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeBPFAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeHexagonAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeLanaiAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeLoongArchAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeMipsAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeMSP430AsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeNVPTXAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializePowerPCAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeRISCVAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeSparcAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeSPIRVAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeSystemZAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeVEAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeWebAssemblyAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeX86AsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeXCoreAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeM68kAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeXtensaAsmPrinter() -> None: ...
@dll.bind
def LLVMInitializeAArch64AsmParser() -> None: ...
@dll.bind
def LLVMInitializeAMDGPUAsmParser() -> None: ...
@dll.bind
def LLVMInitializeARMAsmParser() -> None: ...
@dll.bind
def LLVMInitializeAVRAsmParser() -> None: ...
@dll.bind
def LLVMInitializeBPFAsmParser() -> None: ...
@dll.bind
def LLVMInitializeHexagonAsmParser() -> None: ...
@dll.bind
def LLVMInitializeLanaiAsmParser() -> None: ...
@dll.bind
def LLVMInitializeLoongArchAsmParser() -> None: ...
@dll.bind
def LLVMInitializeMipsAsmParser() -> None: ...
@dll.bind
def LLVMInitializeMSP430AsmParser() -> None: ...
@dll.bind
def LLVMInitializePowerPCAsmParser() -> None: ...
@dll.bind
def LLVMInitializeRISCVAsmParser() -> None: ...
@dll.bind
def LLVMInitializeSparcAsmParser() -> None: ...
@dll.bind
def LLVMInitializeSystemZAsmParser() -> None: ...
@dll.bind
def LLVMInitializeVEAsmParser() -> None: ...
@dll.bind
def LLVMInitializeWebAssemblyAsmParser() -> None: ...
@dll.bind
def LLVMInitializeX86AsmParser() -> None: ...
@dll.bind
def LLVMInitializeM68kAsmParser() -> None: ...
@dll.bind
def LLVMInitializeXtensaAsmParser() -> None: ...
@dll.bind
def LLVMInitializeAArch64Disassembler() -> None: ...
@dll.bind
def LLVMInitializeAMDGPUDisassembler() -> None: ...
@dll.bind
def LLVMInitializeARMDisassembler() -> None: ...
@dll.bind
def LLVMInitializeAVRDisassembler() -> None: ...
@dll.bind
def LLVMInitializeBPFDisassembler() -> None: ...
@dll.bind
def LLVMInitializeHexagonDisassembler() -> None: ...
@dll.bind
def LLVMInitializeLanaiDisassembler() -> None: ...
@dll.bind
def LLVMInitializeLoongArchDisassembler() -> None: ...
@dll.bind
def LLVMInitializeMipsDisassembler() -> None: ...
@dll.bind
def LLVMInitializeMSP430Disassembler() -> None: ...
@dll.bind
def LLVMInitializePowerPCDisassembler() -> None: ...
@dll.bind
def LLVMInitializeRISCVDisassembler() -> None: ...
@dll.bind
def LLVMInitializeSparcDisassembler() -> None: ...
@dll.bind
def LLVMInitializeSystemZDisassembler() -> None: ...
@dll.bind
def LLVMInitializeVEDisassembler() -> None: ...
@dll.bind
def LLVMInitializeWebAssemblyDisassembler() -> None: ...
@dll.bind
def LLVMInitializeX86Disassembler() -> None: ...
@dll.bind
def LLVMInitializeXCoreDisassembler() -> None: ...
@dll.bind
def LLVMInitializeM68kDisassembler() -> None: ...
@dll.bind
def LLVMInitializeXtensaDisassembler() -> None: ...
class struct_LLVMOpaqueTargetData(ctypes.Structure): pass
LLVMTargetDataRef: TypeAlias = c.POINTER[struct_LLVMOpaqueTargetData]
@dll.bind
def LLVMGetModuleDataLayout(M:LLVMModuleRef) -> LLVMTargetDataRef: ...
@dll.bind
def LLVMSetModuleDataLayout(M:LLVMModuleRef, DL:LLVMTargetDataRef) -> None: ...
@dll.bind
def LLVMCreateTargetData(StringRep:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMTargetDataRef: ...
@dll.bind
def LLVMDisposeTargetData(TD:LLVMTargetDataRef) -> None: ...
class struct_LLVMOpaqueTargetLibraryInfotData(ctypes.Structure): pass
LLVMTargetLibraryInfoRef: TypeAlias = c.POINTER[struct_LLVMOpaqueTargetLibraryInfotData]
@dll.bind
def LLVMAddTargetLibraryInfo(TLI:LLVMTargetLibraryInfoRef, PM:LLVMPassManagerRef) -> None: ...
@dll.bind
def LLVMCopyStringRepOfTargetData(TD:LLVMTargetDataRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
class enum_LLVMByteOrdering(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMBigEndian = enum_LLVMByteOrdering.define('LLVMBigEndian', 0)
LLVMLittleEndian = enum_LLVMByteOrdering.define('LLVMLittleEndian', 1)

@dll.bind
def LLVMByteOrder(TD:LLVMTargetDataRef) -> enum_LLVMByteOrdering: ...
@dll.bind
def LLVMPointerSize(TD:LLVMTargetDataRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMPointerSizeForAS(TD:LLVMTargetDataRef, AS:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMIntPtrType(TD:LLVMTargetDataRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMIntPtrTypeForAS(TD:LLVMTargetDataRef, AS:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMIntPtrTypeInContext(C:LLVMContextRef, TD:LLVMTargetDataRef) -> LLVMTypeRef: ...
@dll.bind
def LLVMIntPtrTypeForASInContext(C:LLVMContextRef, TD:LLVMTargetDataRef, AS:Annotated[int, ctypes.c_uint32]) -> LLVMTypeRef: ...
@dll.bind
def LLVMSizeOfTypeInBits(TD:LLVMTargetDataRef, Ty:LLVMTypeRef) -> Annotated[int, ctypes.c_uint64]: ...
@dll.bind
def LLVMStoreSizeOfType(TD:LLVMTargetDataRef, Ty:LLVMTypeRef) -> Annotated[int, ctypes.c_uint64]: ...
@dll.bind
def LLVMABISizeOfType(TD:LLVMTargetDataRef, Ty:LLVMTypeRef) -> Annotated[int, ctypes.c_uint64]: ...
@dll.bind
def LLVMABIAlignmentOfType(TD:LLVMTargetDataRef, Ty:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMCallFrameAlignmentOfType(TD:LLVMTargetDataRef, Ty:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMPreferredAlignmentOfType(TD:LLVMTargetDataRef, Ty:LLVMTypeRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMPreferredAlignmentOfGlobal(TD:LLVMTargetDataRef, GlobalVar:LLVMValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMElementAtOffset(TD:LLVMTargetDataRef, StructTy:LLVMTypeRef, Offset:Annotated[int, ctypes.c_uint64]) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMOffsetOfElement(TD:LLVMTargetDataRef, StructTy:LLVMTypeRef, Element:Annotated[int, ctypes.c_uint32]) -> Annotated[int, ctypes.c_uint64]: ...
class struct_LLVMTarget(ctypes.Structure): pass
LLVMTargetRef: TypeAlias = c.POINTER[struct_LLVMTarget]
@dll.bind
def LLVMGetFirstTarget() -> LLVMTargetRef: ...
@dll.bind
def LLVMGetNextTarget(T:LLVMTargetRef) -> LLVMTargetRef: ...
@dll.bind
def LLVMGetTargetFromName(Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMTargetRef: ...
@dll.bind
def LLVMGetTargetFromTriple(Triple:c.POINTER[Annotated[bytes, ctypes.c_char]], T:c.POINTER[LLVMTargetRef], ErrorMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMGetTargetName(T:LLVMTargetRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetTargetDescription(T:LLVMTargetRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMTargetHasJIT(T:LLVMTargetRef) -> LLVMBool: ...
@dll.bind
def LLVMTargetHasTargetMachine(T:LLVMTargetRef) -> LLVMBool: ...
@dll.bind
def LLVMTargetHasAsmBackend(T:LLVMTargetRef) -> LLVMBool: ...
class struct_LLVMOpaqueTargetMachineOptions(ctypes.Structure): pass
LLVMTargetMachineOptionsRef: TypeAlias = c.POINTER[struct_LLVMOpaqueTargetMachineOptions]
@dll.bind
def LLVMCreateTargetMachineOptions() -> LLVMTargetMachineOptionsRef: ...
@dll.bind
def LLVMDisposeTargetMachineOptions(Options:LLVMTargetMachineOptionsRef) -> None: ...
@dll.bind
def LLVMTargetMachineOptionsSetCPU(Options:LLVMTargetMachineOptionsRef, CPU:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMTargetMachineOptionsSetFeatures(Options:LLVMTargetMachineOptionsRef, Features:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMTargetMachineOptionsSetABI(Options:LLVMTargetMachineOptionsRef, ABI:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
class LLVMCodeGenOptLevel(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMCodeGenLevelNone = LLVMCodeGenOptLevel.define('LLVMCodeGenLevelNone', 0)
LLVMCodeGenLevelLess = LLVMCodeGenOptLevel.define('LLVMCodeGenLevelLess', 1)
LLVMCodeGenLevelDefault = LLVMCodeGenOptLevel.define('LLVMCodeGenLevelDefault', 2)
LLVMCodeGenLevelAggressive = LLVMCodeGenOptLevel.define('LLVMCodeGenLevelAggressive', 3)

@dll.bind
def LLVMTargetMachineOptionsSetCodeGenOptLevel(Options:LLVMTargetMachineOptionsRef, Level:LLVMCodeGenOptLevel) -> None: ...
class LLVMRelocMode(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMRelocDefault = LLVMRelocMode.define('LLVMRelocDefault', 0)
LLVMRelocStatic = LLVMRelocMode.define('LLVMRelocStatic', 1)
LLVMRelocPIC = LLVMRelocMode.define('LLVMRelocPIC', 2)
LLVMRelocDynamicNoPic = LLVMRelocMode.define('LLVMRelocDynamicNoPic', 3)
LLVMRelocROPI = LLVMRelocMode.define('LLVMRelocROPI', 4)
LLVMRelocRWPI = LLVMRelocMode.define('LLVMRelocRWPI', 5)
LLVMRelocROPI_RWPI = LLVMRelocMode.define('LLVMRelocROPI_RWPI', 6)

@dll.bind
def LLVMTargetMachineOptionsSetRelocMode(Options:LLVMTargetMachineOptionsRef, Reloc:LLVMRelocMode) -> None: ...
class LLVMCodeModel(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMCodeModelDefault = LLVMCodeModel.define('LLVMCodeModelDefault', 0)
LLVMCodeModelJITDefault = LLVMCodeModel.define('LLVMCodeModelJITDefault', 1)
LLVMCodeModelTiny = LLVMCodeModel.define('LLVMCodeModelTiny', 2)
LLVMCodeModelSmall = LLVMCodeModel.define('LLVMCodeModelSmall', 3)
LLVMCodeModelKernel = LLVMCodeModel.define('LLVMCodeModelKernel', 4)
LLVMCodeModelMedium = LLVMCodeModel.define('LLVMCodeModelMedium', 5)
LLVMCodeModelLarge = LLVMCodeModel.define('LLVMCodeModelLarge', 6)

@dll.bind
def LLVMTargetMachineOptionsSetCodeModel(Options:LLVMTargetMachineOptionsRef, CodeModel:LLVMCodeModel) -> None: ...
class struct_LLVMOpaqueTargetMachine(ctypes.Structure): pass
LLVMTargetMachineRef: TypeAlias = c.POINTER[struct_LLVMOpaqueTargetMachine]
@dll.bind
def LLVMCreateTargetMachineWithOptions(T:LLVMTargetRef, Triple:c.POINTER[Annotated[bytes, ctypes.c_char]], Options:LLVMTargetMachineOptionsRef) -> LLVMTargetMachineRef: ...
@dll.bind
def LLVMCreateTargetMachine(T:LLVMTargetRef, Triple:c.POINTER[Annotated[bytes, ctypes.c_char]], CPU:c.POINTER[Annotated[bytes, ctypes.c_char]], Features:c.POINTER[Annotated[bytes, ctypes.c_char]], Level:LLVMCodeGenOptLevel, Reloc:LLVMRelocMode, CodeModel:LLVMCodeModel) -> LLVMTargetMachineRef: ...
@dll.bind
def LLVMDisposeTargetMachine(T:LLVMTargetMachineRef) -> None: ...
@dll.bind
def LLVMGetTargetMachineTarget(T:LLVMTargetMachineRef) -> LLVMTargetRef: ...
@dll.bind
def LLVMGetTargetMachineTriple(T:LLVMTargetMachineRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetTargetMachineCPU(T:LLVMTargetMachineRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetTargetMachineFeatureString(T:LLVMTargetMachineRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMCreateTargetDataLayout(T:LLVMTargetMachineRef) -> LLVMTargetDataRef: ...
@dll.bind
def LLVMSetTargetMachineAsmVerbosity(T:LLVMTargetMachineRef, VerboseAsm:LLVMBool) -> None: ...
@dll.bind
def LLVMSetTargetMachineFastISel(T:LLVMTargetMachineRef, Enable:LLVMBool) -> None: ...
@dll.bind
def LLVMSetTargetMachineGlobalISel(T:LLVMTargetMachineRef, Enable:LLVMBool) -> None: ...
class LLVMGlobalISelAbortMode(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMGlobalISelAbortEnable = LLVMGlobalISelAbortMode.define('LLVMGlobalISelAbortEnable', 0)
LLVMGlobalISelAbortDisable = LLVMGlobalISelAbortMode.define('LLVMGlobalISelAbortDisable', 1)
LLVMGlobalISelAbortDisableWithDiag = LLVMGlobalISelAbortMode.define('LLVMGlobalISelAbortDisableWithDiag', 2)

@dll.bind
def LLVMSetTargetMachineGlobalISelAbort(T:LLVMTargetMachineRef, Mode:LLVMGlobalISelAbortMode) -> None: ...
@dll.bind
def LLVMSetTargetMachineMachineOutliner(T:LLVMTargetMachineRef, Enable:LLVMBool) -> None: ...
class LLVMCodeGenFileType(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMAssemblyFile = LLVMCodeGenFileType.define('LLVMAssemblyFile', 0)
LLVMObjectFile = LLVMCodeGenFileType.define('LLVMObjectFile', 1)

@dll.bind
def LLVMTargetMachineEmitToFile(T:LLVMTargetMachineRef, M:LLVMModuleRef, Filename:c.POINTER[Annotated[bytes, ctypes.c_char]], codegen:LLVMCodeGenFileType, ErrorMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMTargetMachineEmitToMemoryBuffer(T:LLVMTargetMachineRef, M:LLVMModuleRef, codegen:LLVMCodeGenFileType, ErrorMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], OutMemBuf:c.POINTER[LLVMMemoryBufferRef]) -> LLVMBool: ...
@dll.bind
def LLVMGetDefaultTargetTriple() -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMNormalizeTargetTriple(triple:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetHostCPUName() -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetHostCPUFeatures() -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMAddAnalysisPasses(T:LLVMTargetMachineRef, PM:LLVMPassManagerRef) -> None: ...
@dll.bind
def LLVMLinkInMCJIT() -> None: ...
@dll.bind
def LLVMLinkInInterpreter() -> None: ...
class struct_LLVMOpaqueGenericValue(ctypes.Structure): pass
LLVMGenericValueRef: TypeAlias = c.POINTER[struct_LLVMOpaqueGenericValue]
class struct_LLVMOpaqueExecutionEngine(ctypes.Structure): pass
LLVMExecutionEngineRef: TypeAlias = c.POINTER[struct_LLVMOpaqueExecutionEngine]
class struct_LLVMOpaqueMCJITMemoryManager(ctypes.Structure): pass
LLVMMCJITMemoryManagerRef: TypeAlias = c.POINTER[struct_LLVMOpaqueMCJITMemoryManager]
@c.record
class struct_LLVMMCJITCompilerOptions(c.Struct):
  SIZE = 24
  OptLevel: Annotated[Annotated[int, ctypes.c_uint32], 0]
  CodeModel: Annotated[LLVMCodeModel, 4]
  NoFramePointerElim: Annotated[LLVMBool, 8]
  EnableFastISel: Annotated[LLVMBool, 12]
  MCJMM: Annotated[LLVMMCJITMemoryManagerRef, 16]
@dll.bind
def LLVMCreateGenericValueOfInt(Ty:LLVMTypeRef, N:Annotated[int, ctypes.c_uint64], IsSigned:LLVMBool) -> LLVMGenericValueRef: ...
@dll.bind
def LLVMCreateGenericValueOfPointer(P:ctypes.c_void_p) -> LLVMGenericValueRef: ...
@dll.bind
def LLVMCreateGenericValueOfFloat(Ty:LLVMTypeRef, N:Annotated[float, ctypes.c_double]) -> LLVMGenericValueRef: ...
@dll.bind
def LLVMGenericValueIntWidth(GenValRef:LLVMGenericValueRef) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def LLVMGenericValueToInt(GenVal:LLVMGenericValueRef, IsSigned:LLVMBool) -> Annotated[int, ctypes.c_uint64]: ...
@dll.bind
def LLVMGenericValueToPointer(GenVal:LLVMGenericValueRef) -> ctypes.c_void_p: ...
@dll.bind
def LLVMGenericValueToFloat(TyRef:LLVMTypeRef, GenVal:LLVMGenericValueRef) -> Annotated[float, ctypes.c_double]: ...
@dll.bind
def LLVMDisposeGenericValue(GenVal:LLVMGenericValueRef) -> None: ...
@dll.bind
def LLVMCreateExecutionEngineForModule(OutEE:c.POINTER[LLVMExecutionEngineRef], M:LLVMModuleRef, OutError:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMCreateInterpreterForModule(OutInterp:c.POINTER[LLVMExecutionEngineRef], M:LLVMModuleRef, OutError:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMCreateJITCompilerForModule(OutJIT:c.POINTER[LLVMExecutionEngineRef], M:LLVMModuleRef, OptLevel:Annotated[int, ctypes.c_uint32], OutError:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMInitializeMCJITCompilerOptions(Options:c.POINTER[struct_LLVMMCJITCompilerOptions], SizeOfOptions:size_t) -> None: ...
@dll.bind
def LLVMCreateMCJITCompilerForModule(OutJIT:c.POINTER[LLVMExecutionEngineRef], M:LLVMModuleRef, Options:c.POINTER[struct_LLVMMCJITCompilerOptions], SizeOfOptions:size_t, OutError:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMDisposeExecutionEngine(EE:LLVMExecutionEngineRef) -> None: ...
@dll.bind
def LLVMRunStaticConstructors(EE:LLVMExecutionEngineRef) -> None: ...
@dll.bind
def LLVMRunStaticDestructors(EE:LLVMExecutionEngineRef) -> None: ...
@dll.bind
def LLVMRunFunctionAsMain(EE:LLVMExecutionEngineRef, F:LLVMValueRef, ArgC:Annotated[int, ctypes.c_uint32], ArgV:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], EnvP:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> Annotated[int, ctypes.c_int32]: ...
@dll.bind
def LLVMRunFunction(EE:LLVMExecutionEngineRef, F:LLVMValueRef, NumArgs:Annotated[int, ctypes.c_uint32], Args:c.POINTER[LLVMGenericValueRef]) -> LLVMGenericValueRef: ...
@dll.bind
def LLVMFreeMachineCodeForFunction(EE:LLVMExecutionEngineRef, F:LLVMValueRef) -> None: ...
@dll.bind
def LLVMAddModule(EE:LLVMExecutionEngineRef, M:LLVMModuleRef) -> None: ...
@dll.bind
def LLVMRemoveModule(EE:LLVMExecutionEngineRef, M:LLVMModuleRef, OutMod:c.POINTER[LLVMModuleRef], OutError:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
@dll.bind
def LLVMFindFunction(EE:LLVMExecutionEngineRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]], OutFn:c.POINTER[LLVMValueRef]) -> LLVMBool: ...
@dll.bind
def LLVMRecompileAndRelinkFunction(EE:LLVMExecutionEngineRef, Fn:LLVMValueRef) -> ctypes.c_void_p: ...
@dll.bind
def LLVMGetExecutionEngineTargetData(EE:LLVMExecutionEngineRef) -> LLVMTargetDataRef: ...
@dll.bind
def LLVMGetExecutionEngineTargetMachine(EE:LLVMExecutionEngineRef) -> LLVMTargetMachineRef: ...
@dll.bind
def LLVMAddGlobalMapping(EE:LLVMExecutionEngineRef, Global:LLVMValueRef, Addr:ctypes.c_void_p) -> None: ...
@dll.bind
def LLVMGetPointerToGlobal(EE:LLVMExecutionEngineRef, Global:LLVMValueRef) -> ctypes.c_void_p: ...
@dll.bind
def LLVMGetGlobalValueAddress(EE:LLVMExecutionEngineRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> uint64_t: ...
@dll.bind
def LLVMGetFunctionAddress(EE:LLVMExecutionEngineRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> uint64_t: ...
@dll.bind
def LLVMExecutionEngineGetErrMsg(EE:LLVMExecutionEngineRef, OutError:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
LLVMMemoryManagerAllocateCodeSectionCallback: TypeAlias = c.CFUNCTYPE[c.POINTER[Annotated[int, ctypes.c_ubyte]], [ctypes.c_void_p, Annotated[int, ctypes.c_uint64], Annotated[int, ctypes.c_uint32], Annotated[int, ctypes.c_uint32], c.POINTER[Annotated[bytes, ctypes.c_char]]]]
LLVMMemoryManagerAllocateDataSectionCallback: TypeAlias = c.CFUNCTYPE[c.POINTER[Annotated[int, ctypes.c_ubyte]], [ctypes.c_void_p, Annotated[int, ctypes.c_uint64], Annotated[int, ctypes.c_uint32], Annotated[int, ctypes.c_uint32], c.POINTER[Annotated[bytes, ctypes.c_char]], Annotated[int, ctypes.c_int32]]]
LLVMMemoryManagerFinalizeMemoryCallback: TypeAlias = c.CFUNCTYPE[Annotated[int, ctypes.c_int32], [ctypes.c_void_p, c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]]]
LLVMMemoryManagerDestroyCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p]]
@dll.bind
def LLVMCreateSimpleMCJITMemoryManager(Opaque:ctypes.c_void_p, AllocateCodeSection:LLVMMemoryManagerAllocateCodeSectionCallback, AllocateDataSection:LLVMMemoryManagerAllocateDataSectionCallback, FinalizeMemory:LLVMMemoryManagerFinalizeMemoryCallback, Destroy:LLVMMemoryManagerDestroyCallback) -> LLVMMCJITMemoryManagerRef: ...
@dll.bind
def LLVMDisposeMCJITMemoryManager(MM:LLVMMCJITMemoryManagerRef) -> None: ...
class struct_LLVMOpaqueJITEventListener(ctypes.Structure): pass
LLVMJITEventListenerRef: TypeAlias = c.POINTER[struct_LLVMOpaqueJITEventListener]
@dll.bind
def LLVMCreateGDBRegistrationListener() -> LLVMJITEventListenerRef: ...
@dll.bind
def LLVMCreateIntelJITEventListener() -> LLVMJITEventListenerRef: ...
@dll.bind
def LLVMCreateOProfileJITEventListener() -> LLVMJITEventListenerRef: ...
@dll.bind
def LLVMCreatePerfJITEventListener() -> LLVMJITEventListenerRef: ...
@dll.bind
def LLVMParseIRInContext(ContextRef:LLVMContextRef, MemBuf:LLVMMemoryBufferRef, OutM:c.POINTER[LLVMModuleRef], OutMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBool: ...
class struct_LLVMOrcOpaqueExecutionSession(ctypes.Structure): pass
LLVMOrcExecutionSessionRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueExecutionSession]
LLVMOrcErrorReporterFunction: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, c.POINTER[struct_LLVMOpaqueError]]]
@dll.bind
def LLVMOrcExecutionSessionSetErrorReporter(ES:LLVMOrcExecutionSessionRef, ReportError:LLVMOrcErrorReporterFunction, Ctx:ctypes.c_void_p) -> None: ...
class struct_LLVMOrcOpaqueSymbolStringPool(ctypes.Structure): pass
LLVMOrcSymbolStringPoolRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueSymbolStringPool]
@dll.bind
def LLVMOrcExecutionSessionGetSymbolStringPool(ES:LLVMOrcExecutionSessionRef) -> LLVMOrcSymbolStringPoolRef: ...
@dll.bind
def LLVMOrcSymbolStringPoolClearDeadEntries(SSP:LLVMOrcSymbolStringPoolRef) -> None: ...
class struct_LLVMOrcOpaqueSymbolStringPoolEntry(ctypes.Structure): pass
LLVMOrcSymbolStringPoolEntryRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueSymbolStringPoolEntry]
@dll.bind
def LLVMOrcExecutionSessionIntern(ES:LLVMOrcExecutionSessionRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMOrcSymbolStringPoolEntryRef: ...
class LLVMOrcLookupKind(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMOrcLookupKindStatic = LLVMOrcLookupKind.define('LLVMOrcLookupKindStatic', 0)
LLVMOrcLookupKindDLSym = LLVMOrcLookupKind.define('LLVMOrcLookupKindDLSym', 1)

@c.record
class LLVMOrcCJITDylibSearchOrderElement(c.Struct):
  SIZE = 16
  JD: Annotated[LLVMOrcJITDylibRef, 0]
  JDLookupFlags: Annotated[LLVMOrcJITDylibLookupFlags, 8]
class struct_LLVMOrcOpaqueJITDylib(ctypes.Structure): pass
LLVMOrcJITDylibRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueJITDylib]
class LLVMOrcJITDylibLookupFlags(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMOrcJITDylibLookupFlagsMatchExportedSymbolsOnly = LLVMOrcJITDylibLookupFlags.define('LLVMOrcJITDylibLookupFlagsMatchExportedSymbolsOnly', 0)
LLVMOrcJITDylibLookupFlagsMatchAllSymbols = LLVMOrcJITDylibLookupFlags.define('LLVMOrcJITDylibLookupFlagsMatchAllSymbols', 1)

LLVMOrcCJITDylibSearchOrder: TypeAlias = c.POINTER[LLVMOrcCJITDylibSearchOrderElement]
@c.record
class LLVMOrcCLookupSetElement(c.Struct):
  SIZE = 16
  Name: Annotated[LLVMOrcSymbolStringPoolEntryRef, 0]
  LookupFlags: Annotated[LLVMOrcSymbolLookupFlags, 8]
class LLVMOrcSymbolLookupFlags(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMOrcSymbolLookupFlagsRequiredSymbol = LLVMOrcSymbolLookupFlags.define('LLVMOrcSymbolLookupFlagsRequiredSymbol', 0)
LLVMOrcSymbolLookupFlagsWeaklyReferencedSymbol = LLVMOrcSymbolLookupFlags.define('LLVMOrcSymbolLookupFlagsWeaklyReferencedSymbol', 1)

LLVMOrcCLookupSet: TypeAlias = c.POINTER[LLVMOrcCLookupSetElement]
@c.record
class LLVMOrcCSymbolMapPair(c.Struct):
  SIZE = 24
  Name: Annotated[LLVMOrcSymbolStringPoolEntryRef, 0]
  Sym: Annotated[LLVMJITEvaluatedSymbol, 8]
@c.record
class LLVMJITEvaluatedSymbol(c.Struct):
  SIZE = 16
  Address: Annotated[LLVMOrcExecutorAddress, 0]
  Flags: Annotated[LLVMJITSymbolFlags, 8]
LLVMOrcExecutorAddress: TypeAlias = Annotated[int, ctypes.c_uint64]
@c.record
class LLVMJITSymbolFlags(c.Struct):
  SIZE = 2
  GenericFlags: Annotated[uint8_t, 0]
  TargetFlags: Annotated[uint8_t, 1]
LLVMOrcExecutionSessionLookupHandleResultFunction: TypeAlias = c.CFUNCTYPE[None, [c.POINTER[struct_LLVMOpaqueError], c.POINTER[LLVMOrcCSymbolMapPair], Annotated[int, ctypes.c_uint64], ctypes.c_void_p]]
@dll.bind
def LLVMOrcExecutionSessionLookup(ES:LLVMOrcExecutionSessionRef, K:LLVMOrcLookupKind, SearchOrder:LLVMOrcCJITDylibSearchOrder, SearchOrderSize:size_t, Symbols:LLVMOrcCLookupSet, SymbolsSize:size_t, HandleResult:LLVMOrcExecutionSessionLookupHandleResultFunction, Ctx:ctypes.c_void_p) -> None: ...
@dll.bind
def LLVMOrcRetainSymbolStringPoolEntry(S:LLVMOrcSymbolStringPoolEntryRef) -> None: ...
@dll.bind
def LLVMOrcReleaseSymbolStringPoolEntry(S:LLVMOrcSymbolStringPoolEntryRef) -> None: ...
@dll.bind
def LLVMOrcSymbolStringPoolEntryStr(S:LLVMOrcSymbolStringPoolEntryRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
class struct_LLVMOrcOpaqueResourceTracker(ctypes.Structure): pass
LLVMOrcResourceTrackerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueResourceTracker]
@dll.bind
def LLVMOrcReleaseResourceTracker(RT:LLVMOrcResourceTrackerRef) -> None: ...
@dll.bind
def LLVMOrcResourceTrackerTransferTo(SrcRT:LLVMOrcResourceTrackerRef, DstRT:LLVMOrcResourceTrackerRef) -> None: ...
@dll.bind
def LLVMOrcResourceTrackerRemove(RT:LLVMOrcResourceTrackerRef) -> LLVMErrorRef: ...
class struct_LLVMOrcOpaqueDefinitionGenerator(ctypes.Structure): pass
LLVMOrcDefinitionGeneratorRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueDefinitionGenerator]
@dll.bind
def LLVMOrcDisposeDefinitionGenerator(DG:LLVMOrcDefinitionGeneratorRef) -> None: ...
class struct_LLVMOrcOpaqueMaterializationUnit(ctypes.Structure): pass
LLVMOrcMaterializationUnitRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueMaterializationUnit]
@dll.bind
def LLVMOrcDisposeMaterializationUnit(MU:LLVMOrcMaterializationUnitRef) -> None: ...
@c.record
class LLVMOrcCSymbolFlagsMapPair(c.Struct):
  SIZE = 16
  Name: Annotated[LLVMOrcSymbolStringPoolEntryRef, 0]
  Flags: Annotated[LLVMJITSymbolFlags, 8]
LLVMOrcCSymbolFlagsMapPairs: TypeAlias = c.POINTER[LLVMOrcCSymbolFlagsMapPair]
class struct_LLVMOrcOpaqueMaterializationResponsibility(ctypes.Structure): pass
LLVMOrcMaterializationUnitMaterializeFunction: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, c.POINTER[struct_LLVMOrcOpaqueMaterializationResponsibility]]]
LLVMOrcMaterializationUnitDiscardFunction: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, c.POINTER[struct_LLVMOrcOpaqueJITDylib], c.POINTER[struct_LLVMOrcOpaqueSymbolStringPoolEntry]]]
LLVMOrcMaterializationUnitDestroyFunction: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p]]
@dll.bind
def LLVMOrcCreateCustomMaterializationUnit(Name:c.POINTER[Annotated[bytes, ctypes.c_char]], Ctx:ctypes.c_void_p, Syms:LLVMOrcCSymbolFlagsMapPairs, NumSyms:size_t, InitSym:LLVMOrcSymbolStringPoolEntryRef, Materialize:LLVMOrcMaterializationUnitMaterializeFunction, Discard:LLVMOrcMaterializationUnitDiscardFunction, Destroy:LLVMOrcMaterializationUnitDestroyFunction) -> LLVMOrcMaterializationUnitRef: ...
LLVMOrcCSymbolMapPairs: TypeAlias = c.POINTER[LLVMOrcCSymbolMapPair]
@dll.bind
def LLVMOrcAbsoluteSymbols(Syms:LLVMOrcCSymbolMapPairs, NumPairs:size_t) -> LLVMOrcMaterializationUnitRef: ...
class struct_LLVMOrcOpaqueLazyCallThroughManager(ctypes.Structure): pass
LLVMOrcLazyCallThroughManagerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueLazyCallThroughManager]
class struct_LLVMOrcOpaqueIndirectStubsManager(ctypes.Structure): pass
LLVMOrcIndirectStubsManagerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueIndirectStubsManager]
@c.record
class LLVMOrcCSymbolAliasMapPair(c.Struct):
  SIZE = 24
  Name: Annotated[LLVMOrcSymbolStringPoolEntryRef, 0]
  Entry: Annotated[LLVMOrcCSymbolAliasMapEntry, 8]
@c.record
class LLVMOrcCSymbolAliasMapEntry(c.Struct):
  SIZE = 16
  Name: Annotated[LLVMOrcSymbolStringPoolEntryRef, 0]
  Flags: Annotated[LLVMJITSymbolFlags, 8]
LLVMOrcCSymbolAliasMapPairs: TypeAlias = c.POINTER[LLVMOrcCSymbolAliasMapPair]
@dll.bind
def LLVMOrcLazyReexports(LCTM:LLVMOrcLazyCallThroughManagerRef, ISM:LLVMOrcIndirectStubsManagerRef, SourceRef:LLVMOrcJITDylibRef, CallableAliases:LLVMOrcCSymbolAliasMapPairs, NumPairs:size_t) -> LLVMOrcMaterializationUnitRef: ...
LLVMOrcMaterializationResponsibilityRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueMaterializationResponsibility]
@dll.bind
def LLVMOrcDisposeMaterializationResponsibility(MR:LLVMOrcMaterializationResponsibilityRef) -> None: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityGetTargetDylib(MR:LLVMOrcMaterializationResponsibilityRef) -> LLVMOrcJITDylibRef: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityGetExecutionSession(MR:LLVMOrcMaterializationResponsibilityRef) -> LLVMOrcExecutionSessionRef: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityGetSymbols(MR:LLVMOrcMaterializationResponsibilityRef, NumPairs:c.POINTER[size_t]) -> LLVMOrcCSymbolFlagsMapPairs: ...
@dll.bind
def LLVMOrcDisposeCSymbolFlagsMap(Pairs:LLVMOrcCSymbolFlagsMapPairs) -> None: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityGetInitializerSymbol(MR:LLVMOrcMaterializationResponsibilityRef) -> LLVMOrcSymbolStringPoolEntryRef: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR:LLVMOrcMaterializationResponsibilityRef, NumSymbols:c.POINTER[size_t]) -> c.POINTER[LLVMOrcSymbolStringPoolEntryRef]: ...
@dll.bind
def LLVMOrcDisposeSymbols(Symbols:c.POINTER[LLVMOrcSymbolStringPoolEntryRef]) -> None: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityNotifyResolved(MR:LLVMOrcMaterializationResponsibilityRef, Symbols:LLVMOrcCSymbolMapPairs, NumPairs:size_t) -> LLVMErrorRef: ...
@c.record
class LLVMOrcCSymbolDependenceGroup(c.Struct):
  SIZE = 32
  Symbols: Annotated[LLVMOrcCSymbolsList, 0]
  Dependencies: Annotated[LLVMOrcCDependenceMapPairs, 16]
  NumDependencies: Annotated[size_t, 24]
@c.record
class LLVMOrcCSymbolsList(c.Struct):
  SIZE = 16
  Symbols: Annotated[c.POINTER[LLVMOrcSymbolStringPoolEntryRef], 0]
  Length: Annotated[size_t, 8]
@c.record
class LLVMOrcCDependenceMapPair(c.Struct):
  SIZE = 24
  JD: Annotated[LLVMOrcJITDylibRef, 0]
  Names: Annotated[LLVMOrcCSymbolsList, 8]
LLVMOrcCDependenceMapPairs: TypeAlias = c.POINTER[LLVMOrcCDependenceMapPair]
@dll.bind
def LLVMOrcMaterializationResponsibilityNotifyEmitted(MR:LLVMOrcMaterializationResponsibilityRef, SymbolDepGroups:c.POINTER[LLVMOrcCSymbolDependenceGroup], NumSymbolDepGroups:size_t) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityDefineMaterializing(MR:LLVMOrcMaterializationResponsibilityRef, Pairs:LLVMOrcCSymbolFlagsMapPairs, NumPairs:size_t) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityFailMaterialization(MR:LLVMOrcMaterializationResponsibilityRef) -> None: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityReplace(MR:LLVMOrcMaterializationResponsibilityRef, MU:LLVMOrcMaterializationUnitRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcMaterializationResponsibilityDelegate(MR:LLVMOrcMaterializationResponsibilityRef, Symbols:c.POINTER[LLVMOrcSymbolStringPoolEntryRef], NumSymbols:size_t, Result:c.POINTER[LLVMOrcMaterializationResponsibilityRef]) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcExecutionSessionCreateBareJITDylib(ES:LLVMOrcExecutionSessionRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMOrcJITDylibRef: ...
@dll.bind
def LLVMOrcExecutionSessionCreateJITDylib(ES:LLVMOrcExecutionSessionRef, Result:c.POINTER[LLVMOrcJITDylibRef], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcExecutionSessionGetJITDylibByName(ES:LLVMOrcExecutionSessionRef, Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMOrcJITDylibRef: ...
@dll.bind
def LLVMOrcJITDylibCreateResourceTracker(JD:LLVMOrcJITDylibRef) -> LLVMOrcResourceTrackerRef: ...
@dll.bind
def LLVMOrcJITDylibGetDefaultResourceTracker(JD:LLVMOrcJITDylibRef) -> LLVMOrcResourceTrackerRef: ...
@dll.bind
def LLVMOrcJITDylibDefine(JD:LLVMOrcJITDylibRef, MU:LLVMOrcMaterializationUnitRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcJITDylibClear(JD:LLVMOrcJITDylibRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcJITDylibAddGenerator(JD:LLVMOrcJITDylibRef, DG:LLVMOrcDefinitionGeneratorRef) -> None: ...
class struct_LLVMOrcOpaqueLookupState(ctypes.Structure): pass
LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction: TypeAlias = c.CFUNCTYPE[c.POINTER[struct_LLVMOpaqueError], [c.POINTER[struct_LLVMOrcOpaqueDefinitionGenerator], ctypes.c_void_p, c.POINTER[c.POINTER[struct_LLVMOrcOpaqueLookupState]], LLVMOrcLookupKind, c.POINTER[struct_LLVMOrcOpaqueJITDylib], LLVMOrcJITDylibLookupFlags, c.POINTER[LLVMOrcCLookupSetElement], Annotated[int, ctypes.c_uint64]]]
LLVMOrcDisposeCAPIDefinitionGeneratorFunction: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p]]
@dll.bind
def LLVMOrcCreateCustomCAPIDefinitionGenerator(F:LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction, Ctx:ctypes.c_void_p, Dispose:LLVMOrcDisposeCAPIDefinitionGeneratorFunction) -> LLVMOrcDefinitionGeneratorRef: ...
LLVMOrcLookupStateRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueLookupState]
@dll.bind
def LLVMOrcLookupStateContinueLookup(S:LLVMOrcLookupStateRef, Err:LLVMErrorRef) -> None: ...
LLVMOrcSymbolPredicate: TypeAlias = c.CFUNCTYPE[Annotated[int, ctypes.c_int32], [ctypes.c_void_p, c.POINTER[struct_LLVMOrcOpaqueSymbolStringPoolEntry]]]
@dll.bind
def LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess(Result:c.POINTER[LLVMOrcDefinitionGeneratorRef], GlobalPrefx:Annotated[bytes, ctypes.c_char], Filter:LLVMOrcSymbolPredicate, FilterCtx:ctypes.c_void_p) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcCreateDynamicLibrarySearchGeneratorForPath(Result:c.POINTER[LLVMOrcDefinitionGeneratorRef], FileName:c.POINTER[Annotated[bytes, ctypes.c_char]], GlobalPrefix:Annotated[bytes, ctypes.c_char], Filter:LLVMOrcSymbolPredicate, FilterCtx:ctypes.c_void_p) -> LLVMErrorRef: ...
class struct_LLVMOrcOpaqueObjectLayer(ctypes.Structure): pass
LLVMOrcObjectLayerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueObjectLayer]
@dll.bind
def LLVMOrcCreateStaticLibrarySearchGeneratorForPath(Result:c.POINTER[LLVMOrcDefinitionGeneratorRef], ObjLayer:LLVMOrcObjectLayerRef, FileName:c.POINTER[Annotated[bytes, ctypes.c_char]], TargetTriple:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMErrorRef: ...
class struct_LLVMOrcOpaqueThreadSafeContext(ctypes.Structure): pass
LLVMOrcThreadSafeContextRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueThreadSafeContext]
@dll.bind
def LLVMOrcCreateNewThreadSafeContext() -> LLVMOrcThreadSafeContextRef: ...
@dll.bind
def LLVMOrcThreadSafeContextGetContext(TSCtx:LLVMOrcThreadSafeContextRef) -> LLVMContextRef: ...
@dll.bind
def LLVMOrcDisposeThreadSafeContext(TSCtx:LLVMOrcThreadSafeContextRef) -> None: ...
class struct_LLVMOrcOpaqueThreadSafeModule(ctypes.Structure): pass
LLVMOrcThreadSafeModuleRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueThreadSafeModule]
@dll.bind
def LLVMOrcCreateNewThreadSafeModule(M:LLVMModuleRef, TSCtx:LLVMOrcThreadSafeContextRef) -> LLVMOrcThreadSafeModuleRef: ...
@dll.bind
def LLVMOrcDisposeThreadSafeModule(TSM:LLVMOrcThreadSafeModuleRef) -> None: ...
LLVMOrcGenericIRModuleOperationFunction: TypeAlias = c.CFUNCTYPE[c.POINTER[struct_LLVMOpaqueError], [ctypes.c_void_p, c.POINTER[struct_LLVMOpaqueModule]]]
@dll.bind
def LLVMOrcThreadSafeModuleWithModuleDo(TSM:LLVMOrcThreadSafeModuleRef, F:LLVMOrcGenericIRModuleOperationFunction, Ctx:ctypes.c_void_p) -> LLVMErrorRef: ...
class struct_LLVMOrcOpaqueJITTargetMachineBuilder(ctypes.Structure): pass
LLVMOrcJITTargetMachineBuilderRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueJITTargetMachineBuilder]
@dll.bind
def LLVMOrcJITTargetMachineBuilderDetectHost(Result:c.POINTER[LLVMOrcJITTargetMachineBuilderRef]) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine(TM:LLVMTargetMachineRef) -> LLVMOrcJITTargetMachineBuilderRef: ...
@dll.bind
def LLVMOrcDisposeJITTargetMachineBuilder(JTMB:LLVMOrcJITTargetMachineBuilderRef) -> None: ...
@dll.bind
def LLVMOrcJITTargetMachineBuilderGetTargetTriple(JTMB:LLVMOrcJITTargetMachineBuilderRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMOrcJITTargetMachineBuilderSetTargetTriple(JTMB:LLVMOrcJITTargetMachineBuilderRef, TargetTriple:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMOrcObjectLayerAddObjectFile(ObjLayer:LLVMOrcObjectLayerRef, JD:LLVMOrcJITDylibRef, ObjBuffer:LLVMMemoryBufferRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcObjectLayerAddObjectFileWithRT(ObjLayer:LLVMOrcObjectLayerRef, RT:LLVMOrcResourceTrackerRef, ObjBuffer:LLVMMemoryBufferRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcObjectLayerEmit(ObjLayer:LLVMOrcObjectLayerRef, R:LLVMOrcMaterializationResponsibilityRef, ObjBuffer:LLVMMemoryBufferRef) -> None: ...
@dll.bind
def LLVMOrcDisposeObjectLayer(ObjLayer:LLVMOrcObjectLayerRef) -> None: ...
class struct_LLVMOrcOpaqueIRTransformLayer(ctypes.Structure): pass
LLVMOrcIRTransformLayerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueIRTransformLayer]
@dll.bind
def LLVMOrcIRTransformLayerEmit(IRTransformLayer:LLVMOrcIRTransformLayerRef, MR:LLVMOrcMaterializationResponsibilityRef, TSM:LLVMOrcThreadSafeModuleRef) -> None: ...
LLVMOrcIRTransformLayerTransformFunction: TypeAlias = c.CFUNCTYPE[c.POINTER[struct_LLVMOpaqueError], [ctypes.c_void_p, c.POINTER[c.POINTER[struct_LLVMOrcOpaqueThreadSafeModule]], c.POINTER[struct_LLVMOrcOpaqueMaterializationResponsibility]]]
@dll.bind
def LLVMOrcIRTransformLayerSetTransform(IRTransformLayer:LLVMOrcIRTransformLayerRef, TransformFunction:LLVMOrcIRTransformLayerTransformFunction, Ctx:ctypes.c_void_p) -> None: ...
class struct_LLVMOrcOpaqueObjectTransformLayer(ctypes.Structure): pass
LLVMOrcObjectTransformLayerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueObjectTransformLayer]
LLVMOrcObjectTransformLayerTransformFunction: TypeAlias = c.CFUNCTYPE[c.POINTER[struct_LLVMOpaqueError], [ctypes.c_void_p, c.POINTER[c.POINTER[struct_LLVMOpaqueMemoryBuffer]]]]
@dll.bind
def LLVMOrcObjectTransformLayerSetTransform(ObjTransformLayer:LLVMOrcObjectTransformLayerRef, TransformFunction:LLVMOrcObjectTransformLayerTransformFunction, Ctx:ctypes.c_void_p) -> None: ...
@dll.bind
def LLVMOrcCreateLocalIndirectStubsManager(TargetTriple:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMOrcIndirectStubsManagerRef: ...
@dll.bind
def LLVMOrcDisposeIndirectStubsManager(ISM:LLVMOrcIndirectStubsManagerRef) -> None: ...
LLVMOrcJITTargetAddress: TypeAlias = Annotated[int, ctypes.c_uint64]
@dll.bind
def LLVMOrcCreateLocalLazyCallThroughManager(TargetTriple:c.POINTER[Annotated[bytes, ctypes.c_char]], ES:LLVMOrcExecutionSessionRef, ErrorHandlerAddr:LLVMOrcJITTargetAddress, LCTM:c.POINTER[LLVMOrcLazyCallThroughManagerRef]) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcDisposeLazyCallThroughManager(LCTM:LLVMOrcLazyCallThroughManagerRef) -> None: ...
class struct_LLVMOrcOpaqueDumpObjects(ctypes.Structure): pass
LLVMOrcDumpObjectsRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueDumpObjects]
@dll.bind
def LLVMOrcCreateDumpObjects(DumpDir:c.POINTER[Annotated[bytes, ctypes.c_char]], IdentifierOverride:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMOrcDumpObjectsRef: ...
@dll.bind
def LLVMOrcDisposeDumpObjects(DumpObjects:LLVMOrcDumpObjectsRef) -> None: ...
@dll.bind
def LLVMOrcDumpObjects_CallOperator(DumpObjects:LLVMOrcDumpObjectsRef, ObjBuffer:c.POINTER[LLVMMemoryBufferRef]) -> LLVMErrorRef: ...
LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction: TypeAlias = c.CFUNCTYPE[c.POINTER[struct_LLVMOrcOpaqueObjectLayer], [ctypes.c_void_p, c.POINTER[struct_LLVMOrcOpaqueExecutionSession], c.POINTER[Annotated[bytes, ctypes.c_char]]]]
class struct_LLVMOrcOpaqueLLJITBuilder(ctypes.Structure): pass
LLVMOrcLLJITBuilderRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueLLJITBuilder]
class struct_LLVMOrcOpaqueLLJIT(ctypes.Structure): pass
LLVMOrcLLJITRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueLLJIT]
@dll.bind
def LLVMOrcCreateLLJITBuilder() -> LLVMOrcLLJITBuilderRef: ...
@dll.bind
def LLVMOrcDisposeLLJITBuilder(Builder:LLVMOrcLLJITBuilderRef) -> None: ...
@dll.bind
def LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(Builder:LLVMOrcLLJITBuilderRef, JTMB:LLVMOrcJITTargetMachineBuilderRef) -> None: ...
@dll.bind
def LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(Builder:LLVMOrcLLJITBuilderRef, F:LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction, Ctx:ctypes.c_void_p) -> None: ...
@dll.bind
def LLVMOrcCreateLLJIT(Result:c.POINTER[LLVMOrcLLJITRef], Builder:LLVMOrcLLJITBuilderRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcDisposeLLJIT(J:LLVMOrcLLJITRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcLLJITGetExecutionSession(J:LLVMOrcLLJITRef) -> LLVMOrcExecutionSessionRef: ...
@dll.bind
def LLVMOrcLLJITGetMainJITDylib(J:LLVMOrcLLJITRef) -> LLVMOrcJITDylibRef: ...
@dll.bind
def LLVMOrcLLJITGetTripleString(J:LLVMOrcLLJITRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMOrcLLJITGetGlobalPrefix(J:LLVMOrcLLJITRef) -> Annotated[bytes, ctypes.c_char]: ...
@dll.bind
def LLVMOrcLLJITMangleAndIntern(J:LLVMOrcLLJITRef, UnmangledName:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMOrcSymbolStringPoolEntryRef: ...
@dll.bind
def LLVMOrcLLJITAddObjectFile(J:LLVMOrcLLJITRef, JD:LLVMOrcJITDylibRef, ObjBuffer:LLVMMemoryBufferRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcLLJITAddObjectFileWithRT(J:LLVMOrcLLJITRef, RT:LLVMOrcResourceTrackerRef, ObjBuffer:LLVMMemoryBufferRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcLLJITAddLLVMIRModule(J:LLVMOrcLLJITRef, JD:LLVMOrcJITDylibRef, TSM:LLVMOrcThreadSafeModuleRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcLLJITAddLLVMIRModuleWithRT(J:LLVMOrcLLJITRef, JD:LLVMOrcResourceTrackerRef, TSM:LLVMOrcThreadSafeModuleRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcLLJITLookup(J:LLVMOrcLLJITRef, Result:c.POINTER[LLVMOrcExecutorAddress], Name:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMErrorRef: ...
@dll.bind
def LLVMOrcLLJITGetObjLinkingLayer(J:LLVMOrcLLJITRef) -> LLVMOrcObjectLayerRef: ...
@dll.bind
def LLVMOrcLLJITGetObjTransformLayer(J:LLVMOrcLLJITRef) -> LLVMOrcObjectTransformLayerRef: ...
@dll.bind
def LLVMOrcLLJITGetIRTransformLayer(J:LLVMOrcLLJITRef) -> LLVMOrcIRTransformLayerRef: ...
@dll.bind
def LLVMOrcLLJITGetDataLayoutStr(J:LLVMOrcLLJITRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMOrcLLJITEnableDebugSupport(J:LLVMOrcLLJITRef) -> LLVMErrorRef: ...
class LLVMLinkerMode(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMLinkerDestroySource = LLVMLinkerMode.define('LLVMLinkerDestroySource', 0)
LLVMLinkerPreserveSource_Removed = LLVMLinkerMode.define('LLVMLinkerPreserveSource_Removed', 1)

@dll.bind
def LLVMLinkModules2(Dest:LLVMModuleRef, Src:LLVMModuleRef) -> LLVMBool: ...
class struct_LLVMOpaqueSectionIterator(ctypes.Structure): pass
LLVMSectionIteratorRef: TypeAlias = c.POINTER[struct_LLVMOpaqueSectionIterator]
class struct_LLVMOpaqueSymbolIterator(ctypes.Structure): pass
LLVMSymbolIteratorRef: TypeAlias = c.POINTER[struct_LLVMOpaqueSymbolIterator]
class struct_LLVMOpaqueRelocationIterator(ctypes.Structure): pass
LLVMRelocationIteratorRef: TypeAlias = c.POINTER[struct_LLVMOpaqueRelocationIterator]
class LLVMBinaryType(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMBinaryTypeArchive = LLVMBinaryType.define('LLVMBinaryTypeArchive', 0)
LLVMBinaryTypeMachOUniversalBinary = LLVMBinaryType.define('LLVMBinaryTypeMachOUniversalBinary', 1)
LLVMBinaryTypeCOFFImportFile = LLVMBinaryType.define('LLVMBinaryTypeCOFFImportFile', 2)
LLVMBinaryTypeIR = LLVMBinaryType.define('LLVMBinaryTypeIR', 3)
LLVMBinaryTypeWinRes = LLVMBinaryType.define('LLVMBinaryTypeWinRes', 4)
LLVMBinaryTypeCOFF = LLVMBinaryType.define('LLVMBinaryTypeCOFF', 5)
LLVMBinaryTypeELF32L = LLVMBinaryType.define('LLVMBinaryTypeELF32L', 6)
LLVMBinaryTypeELF32B = LLVMBinaryType.define('LLVMBinaryTypeELF32B', 7)
LLVMBinaryTypeELF64L = LLVMBinaryType.define('LLVMBinaryTypeELF64L', 8)
LLVMBinaryTypeELF64B = LLVMBinaryType.define('LLVMBinaryTypeELF64B', 9)
LLVMBinaryTypeMachO32L = LLVMBinaryType.define('LLVMBinaryTypeMachO32L', 10)
LLVMBinaryTypeMachO32B = LLVMBinaryType.define('LLVMBinaryTypeMachO32B', 11)
LLVMBinaryTypeMachO64L = LLVMBinaryType.define('LLVMBinaryTypeMachO64L', 12)
LLVMBinaryTypeMachO64B = LLVMBinaryType.define('LLVMBinaryTypeMachO64B', 13)
LLVMBinaryTypeWasm = LLVMBinaryType.define('LLVMBinaryTypeWasm', 14)
LLVMBinaryTypeOffload = LLVMBinaryType.define('LLVMBinaryTypeOffload', 15)

class struct_LLVMOpaqueBinary(ctypes.Structure): pass
LLVMBinaryRef: TypeAlias = c.POINTER[struct_LLVMOpaqueBinary]
@dll.bind
def LLVMCreateBinary(MemBuf:LLVMMemoryBufferRef, Context:LLVMContextRef, ErrorMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBinaryRef: ...
@dll.bind
def LLVMDisposeBinary(BR:LLVMBinaryRef) -> None: ...
@dll.bind
def LLVMBinaryCopyMemoryBuffer(BR:LLVMBinaryRef) -> LLVMMemoryBufferRef: ...
@dll.bind
def LLVMBinaryGetType(BR:LLVMBinaryRef) -> LLVMBinaryType: ...
@dll.bind
def LLVMMachOUniversalBinaryCopyObjectForArch(BR:LLVMBinaryRef, Arch:c.POINTER[Annotated[bytes, ctypes.c_char]], ArchLen:size_t, ErrorMessage:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> LLVMBinaryRef: ...
@dll.bind
def LLVMObjectFileCopySectionIterator(BR:LLVMBinaryRef) -> LLVMSectionIteratorRef: ...
@dll.bind
def LLVMObjectFileIsSectionIteratorAtEnd(BR:LLVMBinaryRef, SI:LLVMSectionIteratorRef) -> LLVMBool: ...
@dll.bind
def LLVMObjectFileCopySymbolIterator(BR:LLVMBinaryRef) -> LLVMSymbolIteratorRef: ...
@dll.bind
def LLVMObjectFileIsSymbolIteratorAtEnd(BR:LLVMBinaryRef, SI:LLVMSymbolIteratorRef) -> LLVMBool: ...
@dll.bind
def LLVMDisposeSectionIterator(SI:LLVMSectionIteratorRef) -> None: ...
@dll.bind
def LLVMMoveToNextSection(SI:LLVMSectionIteratorRef) -> None: ...
@dll.bind
def LLVMMoveToContainingSection(Sect:LLVMSectionIteratorRef, Sym:LLVMSymbolIteratorRef) -> None: ...
@dll.bind
def LLVMDisposeSymbolIterator(SI:LLVMSymbolIteratorRef) -> None: ...
@dll.bind
def LLVMMoveToNextSymbol(SI:LLVMSymbolIteratorRef) -> None: ...
@dll.bind
def LLVMGetSectionName(SI:LLVMSectionIteratorRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetSectionSize(SI:LLVMSectionIteratorRef) -> uint64_t: ...
@dll.bind
def LLVMGetSectionContents(SI:LLVMSectionIteratorRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetSectionAddress(SI:LLVMSectionIteratorRef) -> uint64_t: ...
@dll.bind
def LLVMGetSectionContainsSymbol(SI:LLVMSectionIteratorRef, Sym:LLVMSymbolIteratorRef) -> LLVMBool: ...
@dll.bind
def LLVMGetRelocations(Section:LLVMSectionIteratorRef) -> LLVMRelocationIteratorRef: ...
@dll.bind
def LLVMDisposeRelocationIterator(RI:LLVMRelocationIteratorRef) -> None: ...
@dll.bind
def LLVMIsRelocationIteratorAtEnd(Section:LLVMSectionIteratorRef, RI:LLVMRelocationIteratorRef) -> LLVMBool: ...
@dll.bind
def LLVMMoveToNextRelocation(RI:LLVMRelocationIteratorRef) -> None: ...
@dll.bind
def LLVMGetSymbolName(SI:LLVMSymbolIteratorRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetSymbolAddress(SI:LLVMSymbolIteratorRef) -> uint64_t: ...
@dll.bind
def LLVMGetSymbolSize(SI:LLVMSymbolIteratorRef) -> uint64_t: ...
@dll.bind
def LLVMGetRelocationOffset(RI:LLVMRelocationIteratorRef) -> uint64_t: ...
@dll.bind
def LLVMGetRelocationSymbol(RI:LLVMRelocationIteratorRef) -> LLVMSymbolIteratorRef: ...
@dll.bind
def LLVMGetRelocationType(RI:LLVMRelocationIteratorRef) -> uint64_t: ...
@dll.bind
def LLVMGetRelocationTypeName(RI:LLVMRelocationIteratorRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMGetRelocationValueString(RI:LLVMRelocationIteratorRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
class struct_LLVMOpaqueObjectFile(ctypes.Structure): pass
LLVMObjectFileRef: TypeAlias = c.POINTER[struct_LLVMOpaqueObjectFile]
@dll.bind
def LLVMCreateObjectFile(MemBuf:LLVMMemoryBufferRef) -> LLVMObjectFileRef: ...
@dll.bind
def LLVMDisposeObjectFile(ObjectFile:LLVMObjectFileRef) -> None: ...
@dll.bind
def LLVMGetSections(ObjectFile:LLVMObjectFileRef) -> LLVMSectionIteratorRef: ...
@dll.bind
def LLVMIsSectionIteratorAtEnd(ObjectFile:LLVMObjectFileRef, SI:LLVMSectionIteratorRef) -> LLVMBool: ...
@dll.bind
def LLVMGetSymbols(ObjectFile:LLVMObjectFileRef) -> LLVMSymbolIteratorRef: ...
@dll.bind
def LLVMIsSymbolIteratorAtEnd(ObjectFile:LLVMObjectFileRef, SI:LLVMSymbolIteratorRef) -> LLVMBool: ...
class LLVMJITSymbolGenericFlags(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMJITSymbolGenericFlagsNone = LLVMJITSymbolGenericFlags.define('LLVMJITSymbolGenericFlagsNone', 0)
LLVMJITSymbolGenericFlagsExported = LLVMJITSymbolGenericFlags.define('LLVMJITSymbolGenericFlagsExported', 1)
LLVMJITSymbolGenericFlagsWeak = LLVMJITSymbolGenericFlags.define('LLVMJITSymbolGenericFlagsWeak', 2)
LLVMJITSymbolGenericFlagsCallable = LLVMJITSymbolGenericFlags.define('LLVMJITSymbolGenericFlagsCallable', 4)
LLVMJITSymbolGenericFlagsMaterializationSideEffectsOnly = LLVMJITSymbolGenericFlags.define('LLVMJITSymbolGenericFlagsMaterializationSideEffectsOnly', 8)

LLVMJITSymbolTargetFlags: TypeAlias = Annotated[int, ctypes.c_ubyte]
class struct_LLVMOrcOpaqueObjectLinkingLayer(ctypes.Structure): pass
LLVMOrcObjectLinkingLayerRef: TypeAlias = c.POINTER[struct_LLVMOrcOpaqueObjectLinkingLayer]
LLVMMemoryManagerCreateContextCallback: TypeAlias = c.CFUNCTYPE[ctypes.c_void_p, [ctypes.c_void_p]]
LLVMMemoryManagerNotifyTerminatingCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p]]
@dll.bind
def LLVMOrcCreateRTDyldObjectLinkingLayerWithSectionMemoryManager(ES:LLVMOrcExecutionSessionRef) -> LLVMOrcObjectLayerRef: ...
@dll.bind
def LLVMOrcCreateRTDyldObjectLinkingLayerWithMCJITMemoryManagerLikeCallbacks(ES:LLVMOrcExecutionSessionRef, CreateContextCtx:ctypes.c_void_p, CreateContext:LLVMMemoryManagerCreateContextCallback, NotifyTerminating:LLVMMemoryManagerNotifyTerminatingCallback, AllocateCodeSection:LLVMMemoryManagerAllocateCodeSectionCallback, AllocateDataSection:LLVMMemoryManagerAllocateDataSectionCallback, FinalizeMemory:LLVMMemoryManagerFinalizeMemoryCallback, Destroy:LLVMMemoryManagerDestroyCallback) -> LLVMOrcObjectLayerRef: ...
@dll.bind
def LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener(RTDyldObjLinkingLayer:LLVMOrcObjectLayerRef, Listener:LLVMJITEventListenerRef) -> None: ...
class enum_LLVMRemarkType(Annotated[int, ctypes.c_uint32], c.Enum): pass
LLVMRemarkTypeUnknown = enum_LLVMRemarkType.define('LLVMRemarkTypeUnknown', 0)
LLVMRemarkTypePassed = enum_LLVMRemarkType.define('LLVMRemarkTypePassed', 1)
LLVMRemarkTypeMissed = enum_LLVMRemarkType.define('LLVMRemarkTypeMissed', 2)
LLVMRemarkTypeAnalysis = enum_LLVMRemarkType.define('LLVMRemarkTypeAnalysis', 3)
LLVMRemarkTypeAnalysisFPCommute = enum_LLVMRemarkType.define('LLVMRemarkTypeAnalysisFPCommute', 4)
LLVMRemarkTypeAnalysisAliasing = enum_LLVMRemarkType.define('LLVMRemarkTypeAnalysisAliasing', 5)
LLVMRemarkTypeFailure = enum_LLVMRemarkType.define('LLVMRemarkTypeFailure', 6)

class struct_LLVMRemarkOpaqueString(ctypes.Structure): pass
LLVMRemarkStringRef: TypeAlias = c.POINTER[struct_LLVMRemarkOpaqueString]
@dll.bind
def LLVMRemarkStringGetData(String:LLVMRemarkStringRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMRemarkStringGetLen(String:LLVMRemarkStringRef) -> uint32_t: ...
class struct_LLVMRemarkOpaqueDebugLoc(ctypes.Structure): pass
LLVMRemarkDebugLocRef: TypeAlias = c.POINTER[struct_LLVMRemarkOpaqueDebugLoc]
@dll.bind
def LLVMRemarkDebugLocGetSourceFilePath(DL:LLVMRemarkDebugLocRef) -> LLVMRemarkStringRef: ...
@dll.bind
def LLVMRemarkDebugLocGetSourceLine(DL:LLVMRemarkDebugLocRef) -> uint32_t: ...
@dll.bind
def LLVMRemarkDebugLocGetSourceColumn(DL:LLVMRemarkDebugLocRef) -> uint32_t: ...
class struct_LLVMRemarkOpaqueArg(ctypes.Structure): pass
LLVMRemarkArgRef: TypeAlias = c.POINTER[struct_LLVMRemarkOpaqueArg]
@dll.bind
def LLVMRemarkArgGetKey(Arg:LLVMRemarkArgRef) -> LLVMRemarkStringRef: ...
@dll.bind
def LLVMRemarkArgGetValue(Arg:LLVMRemarkArgRef) -> LLVMRemarkStringRef: ...
@dll.bind
def LLVMRemarkArgGetDebugLoc(Arg:LLVMRemarkArgRef) -> LLVMRemarkDebugLocRef: ...
class struct_LLVMRemarkOpaqueEntry(ctypes.Structure): pass
LLVMRemarkEntryRef: TypeAlias = c.POINTER[struct_LLVMRemarkOpaqueEntry]
@dll.bind
def LLVMRemarkEntryDispose(Remark:LLVMRemarkEntryRef) -> None: ...
@dll.bind
def LLVMRemarkEntryGetType(Remark:LLVMRemarkEntryRef) -> enum_LLVMRemarkType: ...
@dll.bind
def LLVMRemarkEntryGetPassName(Remark:LLVMRemarkEntryRef) -> LLVMRemarkStringRef: ...
@dll.bind
def LLVMRemarkEntryGetRemarkName(Remark:LLVMRemarkEntryRef) -> LLVMRemarkStringRef: ...
@dll.bind
def LLVMRemarkEntryGetFunctionName(Remark:LLVMRemarkEntryRef) -> LLVMRemarkStringRef: ...
@dll.bind
def LLVMRemarkEntryGetDebugLoc(Remark:LLVMRemarkEntryRef) -> LLVMRemarkDebugLocRef: ...
@dll.bind
def LLVMRemarkEntryGetHotness(Remark:LLVMRemarkEntryRef) -> uint64_t: ...
@dll.bind
def LLVMRemarkEntryGetNumArgs(Remark:LLVMRemarkEntryRef) -> uint32_t: ...
@dll.bind
def LLVMRemarkEntryGetFirstArg(Remark:LLVMRemarkEntryRef) -> LLVMRemarkArgRef: ...
@dll.bind
def LLVMRemarkEntryGetNextArg(It:LLVMRemarkArgRef, Remark:LLVMRemarkEntryRef) -> LLVMRemarkArgRef: ...
class struct_LLVMRemarkOpaqueParser(ctypes.Structure): pass
LLVMRemarkParserRef: TypeAlias = c.POINTER[struct_LLVMRemarkOpaqueParser]
@dll.bind
def LLVMRemarkParserCreateYAML(Buf:ctypes.c_void_p, Size:uint64_t) -> LLVMRemarkParserRef: ...
@dll.bind
def LLVMRemarkParserCreateBitstream(Buf:ctypes.c_void_p, Size:uint64_t) -> LLVMRemarkParserRef: ...
@dll.bind
def LLVMRemarkParserGetNext(Parser:LLVMRemarkParserRef) -> LLVMRemarkEntryRef: ...
@dll.bind
def LLVMRemarkParserHasError(Parser:LLVMRemarkParserRef) -> LLVMBool: ...
@dll.bind
def LLVMRemarkParserGetErrorMessage(Parser:LLVMRemarkParserRef) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def LLVMRemarkParserDispose(Parser:LLVMRemarkParserRef) -> None: ...
@dll.bind
def LLVMRemarkVersion() -> uint32_t: ...
@dll.bind
def LLVMLoadLibraryPermanently(Filename:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> LLVMBool: ...
@dll.bind
def LLVMParseCommandLineOptions(argc:Annotated[int, ctypes.c_int32], argv:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], Overview:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMSearchForAddressOfSymbol(symbolName:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> ctypes.c_void_p: ...
@dll.bind
def LLVMAddSymbol(symbolName:c.POINTER[Annotated[bytes, ctypes.c_char]], symbolValue:ctypes.c_void_p) -> None: ...
class struct_LLVMOpaquePassBuilderOptions(ctypes.Structure): pass
LLVMPassBuilderOptionsRef: TypeAlias = c.POINTER[struct_LLVMOpaquePassBuilderOptions]
@dll.bind
def LLVMRunPasses(M:LLVMModuleRef, Passes:c.POINTER[Annotated[bytes, ctypes.c_char]], TM:LLVMTargetMachineRef, Options:LLVMPassBuilderOptionsRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMRunPassesOnFunction(F:LLVMValueRef, Passes:c.POINTER[Annotated[bytes, ctypes.c_char]], TM:LLVMTargetMachineRef, Options:LLVMPassBuilderOptionsRef) -> LLVMErrorRef: ...
@dll.bind
def LLVMCreatePassBuilderOptions() -> LLVMPassBuilderOptionsRef: ...
@dll.bind
def LLVMPassBuilderOptionsSetVerifyEach(Options:LLVMPassBuilderOptionsRef, VerifyEach:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetDebugLogging(Options:LLVMPassBuilderOptionsRef, DebugLogging:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetAAPipeline(Options:LLVMPassBuilderOptionsRef, AAPipeline:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetLoopInterleaving(Options:LLVMPassBuilderOptionsRef, LoopInterleaving:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetLoopVectorization(Options:LLVMPassBuilderOptionsRef, LoopVectorization:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetSLPVectorization(Options:LLVMPassBuilderOptionsRef, SLPVectorization:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetLoopUnrolling(Options:LLVMPassBuilderOptionsRef, LoopUnrolling:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll(Options:LLVMPassBuilderOptionsRef, ForgetAllSCEVInLoopUnroll:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetLicmMssaOptCap(Options:LLVMPassBuilderOptionsRef, LicmMssaOptCap:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap(Options:LLVMPassBuilderOptionsRef, LicmMssaNoAccForPromotionCap:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetCallGraphProfile(Options:LLVMPassBuilderOptionsRef, CallGraphProfile:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetMergeFunctions(Options:LLVMPassBuilderOptionsRef, MergeFunctions:LLVMBool) -> None: ...
@dll.bind
def LLVMPassBuilderOptionsSetInlinerThreshold(Options:LLVMPassBuilderOptionsRef, Threshold:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def LLVMDisposePassBuilderOptions(Options:LLVMPassBuilderOptionsRef) -> None: ...
@c.record
class llvm_blake3_chunk_state(c.Struct):
  SIZE = 112
  cv: Annotated[c.Array[uint32_t, Literal[8]], 0]
  chunk_counter: Annotated[uint64_t, 32]
  buf: Annotated[c.Array[uint8_t, Literal[64]], 40]
  buf_len: Annotated[uint8_t, 104]
  blocks_compressed: Annotated[uint8_t, 105]
  flags: Annotated[uint8_t, 106]
@c.record
class llvm_blake3_hasher(c.Struct):
  SIZE = 1912
  key: Annotated[c.Array[uint32_t, Literal[8]], 0]
  chunk: Annotated[llvm_blake3_chunk_state, 32]
  cv_stack_len: Annotated[uint8_t, 144]
  cv_stack: Annotated[c.Array[uint8_t, Literal[1760]], 145]
@dll.bind
def llvm_blake3_version() -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def llvm_blake3_hasher_init(self:c.POINTER[llvm_blake3_hasher]) -> None: ...
@dll.bind
def llvm_blake3_hasher_init_keyed(self:c.POINTER[llvm_blake3_hasher], key:c.Array[uint8_t, Literal[32]]) -> None: ...
@dll.bind
def llvm_blake3_hasher_init_derive_key(self:c.POINTER[llvm_blake3_hasher], context:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def llvm_blake3_hasher_init_derive_key_raw(self:c.POINTER[llvm_blake3_hasher], context:ctypes.c_void_p, context_len:size_t) -> None: ...
@dll.bind
def llvm_blake3_hasher_update(self:c.POINTER[llvm_blake3_hasher], input:ctypes.c_void_p, input_len:size_t) -> None: ...
@dll.bind
def llvm_blake3_hasher_finalize(self:c.POINTER[llvm_blake3_hasher], out:c.POINTER[uint8_t], out_len:size_t) -> None: ...
@dll.bind
def llvm_blake3_hasher_finalize_seek(self:c.POINTER[llvm_blake3_hasher], seek:uint64_t, out:c.POINTER[uint8_t], out_len:size_t) -> None: ...
@dll.bind
def llvm_blake3_hasher_reset(self:c.POINTER[llvm_blake3_hasher]) -> None: ...
lto_bool_t: TypeAlias = Annotated[bool, ctypes.c_bool]
class lto_symbol_attributes(Annotated[int, ctypes.c_uint32], c.Enum): pass
LTO_SYMBOL_ALIGNMENT_MASK = lto_symbol_attributes.define('LTO_SYMBOL_ALIGNMENT_MASK', 31)
LTO_SYMBOL_PERMISSIONS_MASK = lto_symbol_attributes.define('LTO_SYMBOL_PERMISSIONS_MASK', 224)
LTO_SYMBOL_PERMISSIONS_CODE = lto_symbol_attributes.define('LTO_SYMBOL_PERMISSIONS_CODE', 160)
LTO_SYMBOL_PERMISSIONS_DATA = lto_symbol_attributes.define('LTO_SYMBOL_PERMISSIONS_DATA', 192)
LTO_SYMBOL_PERMISSIONS_RODATA = lto_symbol_attributes.define('LTO_SYMBOL_PERMISSIONS_RODATA', 128)
LTO_SYMBOL_DEFINITION_MASK = lto_symbol_attributes.define('LTO_SYMBOL_DEFINITION_MASK', 1792)
LTO_SYMBOL_DEFINITION_REGULAR = lto_symbol_attributes.define('LTO_SYMBOL_DEFINITION_REGULAR', 256)
LTO_SYMBOL_DEFINITION_TENTATIVE = lto_symbol_attributes.define('LTO_SYMBOL_DEFINITION_TENTATIVE', 512)
LTO_SYMBOL_DEFINITION_WEAK = lto_symbol_attributes.define('LTO_SYMBOL_DEFINITION_WEAK', 768)
LTO_SYMBOL_DEFINITION_UNDEFINED = lto_symbol_attributes.define('LTO_SYMBOL_DEFINITION_UNDEFINED', 1024)
LTO_SYMBOL_DEFINITION_WEAKUNDEF = lto_symbol_attributes.define('LTO_SYMBOL_DEFINITION_WEAKUNDEF', 1280)
LTO_SYMBOL_SCOPE_MASK = lto_symbol_attributes.define('LTO_SYMBOL_SCOPE_MASK', 14336)
LTO_SYMBOL_SCOPE_INTERNAL = lto_symbol_attributes.define('LTO_SYMBOL_SCOPE_INTERNAL', 2048)
LTO_SYMBOL_SCOPE_HIDDEN = lto_symbol_attributes.define('LTO_SYMBOL_SCOPE_HIDDEN', 4096)
LTO_SYMBOL_SCOPE_PROTECTED = lto_symbol_attributes.define('LTO_SYMBOL_SCOPE_PROTECTED', 8192)
LTO_SYMBOL_SCOPE_DEFAULT = lto_symbol_attributes.define('LTO_SYMBOL_SCOPE_DEFAULT', 6144)
LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN = lto_symbol_attributes.define('LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN', 10240)
LTO_SYMBOL_COMDAT = lto_symbol_attributes.define('LTO_SYMBOL_COMDAT', 16384)
LTO_SYMBOL_ALIAS = lto_symbol_attributes.define('LTO_SYMBOL_ALIAS', 32768)

class lto_debug_model(Annotated[int, ctypes.c_uint32], c.Enum): pass
LTO_DEBUG_MODEL_NONE = lto_debug_model.define('LTO_DEBUG_MODEL_NONE', 0)
LTO_DEBUG_MODEL_DWARF = lto_debug_model.define('LTO_DEBUG_MODEL_DWARF', 1)

class lto_codegen_model(Annotated[int, ctypes.c_uint32], c.Enum): pass
LTO_CODEGEN_PIC_MODEL_STATIC = lto_codegen_model.define('LTO_CODEGEN_PIC_MODEL_STATIC', 0)
LTO_CODEGEN_PIC_MODEL_DYNAMIC = lto_codegen_model.define('LTO_CODEGEN_PIC_MODEL_DYNAMIC', 1)
LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC = lto_codegen_model.define('LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC', 2)
LTO_CODEGEN_PIC_MODEL_DEFAULT = lto_codegen_model.define('LTO_CODEGEN_PIC_MODEL_DEFAULT', 3)

class struct_LLVMOpaqueLTOModule(ctypes.Structure): pass
lto_module_t: TypeAlias = c.POINTER[struct_LLVMOpaqueLTOModule]
class struct_LLVMOpaqueLTOCodeGenerator(ctypes.Structure): pass
lto_code_gen_t: TypeAlias = c.POINTER[struct_LLVMOpaqueLTOCodeGenerator]
class struct_LLVMOpaqueThinLTOCodeGenerator(ctypes.Structure): pass
thinlto_code_gen_t: TypeAlias = c.POINTER[struct_LLVMOpaqueThinLTOCodeGenerator]
@dll.bind
def lto_get_version() -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def lto_get_error_message() -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def lto_module_is_object_file(path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_bool_t: ...
@dll.bind
def lto_module_is_object_file_for_target(path:c.POINTER[Annotated[bytes, ctypes.c_char]], target_triple_prefix:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_bool_t: ...
@dll.bind
def lto_module_has_objc_category(mem:ctypes.c_void_p, length:size_t) -> lto_bool_t: ...
@dll.bind
def lto_module_is_object_file_in_memory(mem:ctypes.c_void_p, length:size_t) -> lto_bool_t: ...
@dll.bind
def lto_module_is_object_file_in_memory_for_target(mem:ctypes.c_void_p, length:size_t, target_triple_prefix:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_bool_t: ...
@dll.bind
def lto_module_create(path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_module_t: ...
@dll.bind
def lto_module_create_from_memory(mem:ctypes.c_void_p, length:size_t) -> lto_module_t: ...
@dll.bind
def lto_module_create_from_memory_with_path(mem:ctypes.c_void_p, length:size_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_module_t: ...
@dll.bind
def lto_module_create_in_local_context(mem:ctypes.c_void_p, length:size_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_module_t: ...
@dll.bind
def lto_module_create_in_codegen_context(mem:ctypes.c_void_p, length:size_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]], cg:lto_code_gen_t) -> lto_module_t: ...
@dll.bind
def lto_module_create_from_fd(fd:Annotated[int, ctypes.c_int32], path:c.POINTER[Annotated[bytes, ctypes.c_char]], file_size:size_t) -> lto_module_t: ...
off_t: TypeAlias = Annotated[int, ctypes.c_int64]
@dll.bind
def lto_module_create_from_fd_at_offset(fd:Annotated[int, ctypes.c_int32], path:c.POINTER[Annotated[bytes, ctypes.c_char]], file_size:size_t, map_size:size_t, offset:off_t) -> lto_module_t: ...
@dll.bind
def lto_module_dispose(mod:lto_module_t) -> None: ...
@dll.bind
def lto_module_get_target_triple(mod:lto_module_t) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def lto_module_set_target_triple(mod:lto_module_t, triple:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def lto_module_get_num_symbols(mod:lto_module_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def lto_module_get_symbol_name(mod:lto_module_t, index:Annotated[int, ctypes.c_uint32]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def lto_module_get_symbol_attribute(mod:lto_module_t, index:Annotated[int, ctypes.c_uint32]) -> lto_symbol_attributes: ...
@dll.bind
def lto_module_get_linkeropts(mod:lto_module_t) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def lto_module_get_macho_cputype(mod:lto_module_t, out_cputype:c.POINTER[Annotated[int, ctypes.c_uint32]], out_cpusubtype:c.POINTER[Annotated[int, ctypes.c_uint32]]) -> lto_bool_t: ...
@dll.bind
def lto_module_has_ctor_dtor(mod:lto_module_t) -> lto_bool_t: ...
class lto_codegen_diagnostic_severity_t(Annotated[int, ctypes.c_uint32], c.Enum): pass
LTO_DS_ERROR = lto_codegen_diagnostic_severity_t.define('LTO_DS_ERROR', 0)
LTO_DS_WARNING = lto_codegen_diagnostic_severity_t.define('LTO_DS_WARNING', 1)
LTO_DS_REMARK = lto_codegen_diagnostic_severity_t.define('LTO_DS_REMARK', 3)
LTO_DS_NOTE = lto_codegen_diagnostic_severity_t.define('LTO_DS_NOTE', 2)

lto_diagnostic_handler_t: TypeAlias = c.CFUNCTYPE[None, [lto_codegen_diagnostic_severity_t, c.POINTER[Annotated[bytes, ctypes.c_char]], ctypes.c_void_p]]
@dll.bind
def lto_codegen_set_diagnostic_handler(_0:lto_code_gen_t, _1:lto_diagnostic_handler_t, _2:ctypes.c_void_p) -> None: ...
@dll.bind
def lto_codegen_create() -> lto_code_gen_t: ...
@dll.bind
def lto_codegen_create_in_local_context() -> lto_code_gen_t: ...
@dll.bind
def lto_codegen_dispose(_0:lto_code_gen_t) -> None: ...
@dll.bind
def lto_codegen_add_module(cg:lto_code_gen_t, mod:lto_module_t) -> lto_bool_t: ...
@dll.bind
def lto_codegen_set_module(cg:lto_code_gen_t, mod:lto_module_t) -> None: ...
@dll.bind
def lto_codegen_set_debug_model(cg:lto_code_gen_t, _1:lto_debug_model) -> lto_bool_t: ...
@dll.bind
def lto_codegen_set_pic_model(cg:lto_code_gen_t, _1:lto_codegen_model) -> lto_bool_t: ...
@dll.bind
def lto_codegen_set_cpu(cg:lto_code_gen_t, cpu:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def lto_codegen_set_assembler_path(cg:lto_code_gen_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def lto_codegen_set_assembler_args(cg:lto_code_gen_t, args:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], nargs:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def lto_codegen_add_must_preserve_symbol(cg:lto_code_gen_t, symbol:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def lto_codegen_write_merged_modules(cg:lto_code_gen_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_bool_t: ...
@dll.bind
def lto_codegen_compile(cg:lto_code_gen_t, length:c.POINTER[size_t]) -> ctypes.c_void_p: ...
@dll.bind
def lto_codegen_compile_to_file(cg:lto_code_gen_t, name:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]) -> lto_bool_t: ...
@dll.bind
def lto_codegen_optimize(cg:lto_code_gen_t) -> lto_bool_t: ...
@dll.bind
def lto_codegen_compile_optimized(cg:lto_code_gen_t, length:c.POINTER[size_t]) -> ctypes.c_void_p: ...
@dll.bind
def lto_api_version() -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def lto_set_debug_options(options:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], number:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def lto_codegen_debug_options(cg:lto_code_gen_t, _1:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def lto_codegen_debug_options_array(cg:lto_code_gen_t, _1:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], number:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def lto_initialize_disassembler() -> None: ...
@dll.bind
def lto_codegen_set_should_internalize(cg:lto_code_gen_t, ShouldInternalize:lto_bool_t) -> None: ...
@dll.bind
def lto_codegen_set_should_embed_uselists(cg:lto_code_gen_t, ShouldEmbedUselists:lto_bool_t) -> None: ...
class struct_LLVMOpaqueLTOInput(ctypes.Structure): pass
lto_input_t: TypeAlias = c.POINTER[struct_LLVMOpaqueLTOInput]
@dll.bind
def lto_input_create(buffer:ctypes.c_void_p, buffer_size:size_t, path:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> lto_input_t: ...
@dll.bind
def lto_input_dispose(input:lto_input_t) -> None: ...
@dll.bind
def lto_input_get_num_dependent_libraries(input:lto_input_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def lto_input_get_dependent_library(input:lto_input_t, index:size_t, size:c.POINTER[size_t]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def lto_runtime_lib_symbols_list(size:c.POINTER[size_t]) -> c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]]: ...
@c.record
class LTOObjectBuffer(c.Struct):
  SIZE = 16
  Buffer: Annotated[c.POINTER[Annotated[bytes, ctypes.c_char]], 0]
  Size: Annotated[size_t, 8]
@dll.bind
def thinlto_create_codegen() -> thinlto_code_gen_t: ...
@dll.bind
def thinlto_codegen_dispose(cg:thinlto_code_gen_t) -> None: ...
@dll.bind
def thinlto_codegen_add_module(cg:thinlto_code_gen_t, identifier:c.POINTER[Annotated[bytes, ctypes.c_char]], data:c.POINTER[Annotated[bytes, ctypes.c_char]], length:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def thinlto_codegen_process(cg:thinlto_code_gen_t) -> None: ...
@dll.bind
def thinlto_module_get_num_objects(cg:thinlto_code_gen_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def thinlto_module_get_object(cg:thinlto_code_gen_t, index:Annotated[int, ctypes.c_uint32]) -> LTOObjectBuffer: ...
@dll.bind
def thinlto_module_get_num_object_files(cg:thinlto_code_gen_t) -> Annotated[int, ctypes.c_uint32]: ...
@dll.bind
def thinlto_module_get_object_file(cg:thinlto_code_gen_t, index:Annotated[int, ctypes.c_uint32]) -> c.POINTER[Annotated[bytes, ctypes.c_char]]: ...
@dll.bind
def thinlto_codegen_set_pic_model(cg:thinlto_code_gen_t, _1:lto_codegen_model) -> lto_bool_t: ...
@dll.bind
def thinlto_codegen_set_savetemps_dir(cg:thinlto_code_gen_t, save_temps_dir:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def thinlto_set_generated_objects_dir(cg:thinlto_code_gen_t, save_temps_dir:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def thinlto_codegen_set_cpu(cg:thinlto_code_gen_t, cpu:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def thinlto_codegen_disable_codegen(cg:thinlto_code_gen_t, disable:lto_bool_t) -> None: ...
@dll.bind
def thinlto_codegen_set_codegen_only(cg:thinlto_code_gen_t, codegen_only:lto_bool_t) -> None: ...
@dll.bind
def thinlto_debug_options(options:c.POINTER[c.POINTER[Annotated[bytes, ctypes.c_char]]], number:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def lto_module_is_thinlto(mod:lto_module_t) -> lto_bool_t: ...
@dll.bind
def thinlto_codegen_add_must_preserve_symbol(cg:thinlto_code_gen_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]], length:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def thinlto_codegen_add_cross_referenced_symbol(cg:thinlto_code_gen_t, name:c.POINTER[Annotated[bytes, ctypes.c_char]], length:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def thinlto_codegen_set_cache_dir(cg:thinlto_code_gen_t, cache_dir:c.POINTER[Annotated[bytes, ctypes.c_char]]) -> None: ...
@dll.bind
def thinlto_codegen_set_cache_pruning_interval(cg:thinlto_code_gen_t, interval:Annotated[int, ctypes.c_int32]) -> None: ...
@dll.bind
def thinlto_codegen_set_final_cache_size_relative_to_available_space(cg:thinlto_code_gen_t, percentage:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def thinlto_codegen_set_cache_entry_expiration(cg:thinlto_code_gen_t, expiration:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def thinlto_codegen_set_cache_size_bytes(cg:thinlto_code_gen_t, max_size_bytes:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def thinlto_codegen_set_cache_size_megabytes(cg:thinlto_code_gen_t, max_size_megabytes:Annotated[int, ctypes.c_uint32]) -> None: ...
@dll.bind
def thinlto_codegen_set_cache_size_files(cg:thinlto_code_gen_t, max_size_files:Annotated[int, ctypes.c_uint32]) -> None: ...
c.init_records()
LLVMDisassembler_Option_UseMarkup = 1 # type: ignore
LLVMDisassembler_Option_PrintImmHex = 2 # type: ignore
LLVMDisassembler_Option_AsmPrinterVariant = 4 # type: ignore
LLVMDisassembler_Option_SetInstrComments = 8 # type: ignore
LLVMDisassembler_Option_PrintLatency = 16 # type: ignore
LLVMDisassembler_Option_Color = 32 # type: ignore
LLVMDisassembler_VariantKind_None = 0 # type: ignore
LLVMDisassembler_VariantKind_ARM_HI16 = 1 # type: ignore
LLVMDisassembler_VariantKind_ARM_LO16 = 2 # type: ignore
LLVMDisassembler_VariantKind_ARM64_PAGE = 1 # type: ignore
LLVMDisassembler_VariantKind_ARM64_PAGEOFF = 2 # type: ignore
LLVMDisassembler_VariantKind_ARM64_GOTPAGE = 3 # type: ignore
LLVMDisassembler_VariantKind_ARM64_GOTPAGEOFF = 4 # type: ignore
LLVMDisassembler_VariantKind_ARM64_TLVP = 5 # type: ignore
LLVMDisassembler_VariantKind_ARM64_TLVOFF = 6 # type: ignore
LLVMDisassembler_ReferenceType_InOut_None = 0 # type: ignore
LLVMDisassembler_ReferenceType_In_Branch = 1 # type: ignore
LLVMDisassembler_ReferenceType_In_PCrel_Load = 2 # type: ignore
LLVMDisassembler_ReferenceType_In_ARM64_ADRP = 0x100000001 # type: ignore
LLVMDisassembler_ReferenceType_In_ARM64_ADDXri = 0x100000002 # type: ignore
LLVMDisassembler_ReferenceType_In_ARM64_LDRXui = 0x100000003 # type: ignore
LLVMDisassembler_ReferenceType_In_ARM64_LDRXl = 0x100000004 # type: ignore
LLVMDisassembler_ReferenceType_In_ARM64_ADR = 0x100000005 # type: ignore
LLVMDisassembler_ReferenceType_Out_SymbolStub = 1 # type: ignore
LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr = 2 # type: ignore
LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr = 3 # type: ignore
LLVMDisassembler_ReferenceType_Out_Objc_CFString_Ref = 4 # type: ignore
LLVMDisassembler_ReferenceType_Out_Objc_Message = 5 # type: ignore
LLVMDisassembler_ReferenceType_Out_Objc_Message_Ref = 6 # type: ignore
LLVMDisassembler_ReferenceType_Out_Objc_Selector_Ref = 7 # type: ignore
LLVMDisassembler_ReferenceType_Out_Objc_Class_Ref = 8 # type: ignore
LLVMDisassembler_ReferenceType_DeMangled_Name = 9 # type: ignore
LLVMErrorSuccess = 0 # type: ignore
REMARKS_API_VERSION = 1 # type: ignore
LLVM_BLAKE3_VERSION_STRING = "1.3.1" # type: ignore
LLVM_BLAKE3_KEY_LEN = 32 # type: ignore
LLVM_BLAKE3_OUT_LEN = 32 # type: ignore
LLVM_BLAKE3_BLOCK_LEN = 64 # type: ignore
LLVM_BLAKE3_CHUNK_LEN = 1024 # type: ignore
LLVM_BLAKE3_MAX_DEPTH = 54 # type: ignore
LTO_API_VERSION = 29 # type: ignore