llvm-6502/bindings/ada/llvm/llvm.ads
Bill Wendling 5e721d7682 Implement the "linker_private_weak" linkage type. This will be used for
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.

For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:

      .globl l_objc_msgSend_fixup_alloc
      .weak_definition l_objc_msgSend_fixup_alloc
      .section __DATA, __objc_msgrefs, coalesced
      .align 3
l_objc_msgSend_fixup_alloc:
       .quad   _objc_msgSend_fixup
       .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".

Currently only supported on Darwin platforms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 21:55:59 +00:00

496 lines
14 KiB
Ada

-- This file is generated by SWIG. Do *not* modify by hand.
--
with Interfaces.C.Extensions;
package llvm is
-- LLVMCtxt
--
type LLVMCtxt is new Interfaces.C.Extensions.opaque_structure_def;
type LLVMCtxt_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCtxt;
type LLVMCtxt_view is access all llvm.LLVMCtxt;
-- LLVMContextRef
--
type LLVMContextRef is access all llvm.LLVMCtxt;
type LLVMContextRef_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMContextRef;
type LLVMContextRef_view is access all llvm.LLVMContextRef;
-- LLVMOpaqueModule
--
type LLVMOpaqueModule is new Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueModule_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueModule;
type LLVMOpaqueModule_view is access all llvm.LLVMOpaqueModule;
-- LLVMModuleRef
--
type LLVMModuleRef is access all llvm.LLVMOpaqueModule;
type LLVMModuleRef_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMModuleRef;
type LLVMModuleRef_view is access all llvm.LLVMModuleRef;
-- LLVMOpaqueType
--
type LLVMOpaqueType is new Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueType_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueType;
type LLVMOpaqueType_view is access all llvm.LLVMOpaqueType;
-- LLVMTypeRef
--
type LLVMTypeRef is access all llvm.LLVMOpaqueType;
type LLVMTypeRef_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeRef;
type LLVMTypeRef_view is access all llvm.LLVMTypeRef;
-- LLVMOpaqueTypeHandle
--
type LLVMOpaqueTypeHandle is new
Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueTypeHandle_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMOpaqueTypeHandle;
type LLVMOpaqueTypeHandle_view is access all llvm.LLVMOpaqueTypeHandle;
-- LLVMTypeHandleRef
--
type LLVMTypeHandleRef is access all llvm.LLVMOpaqueTypeHandle;
type LLVMTypeHandleRef_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMTypeHandleRef;
type LLVMTypeHandleRef_view is access all llvm.LLVMTypeHandleRef;
-- LLVMOpaqueValue
--
type LLVMOpaqueValue is new Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueValue_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueValue;
type LLVMOpaqueValue_view is access all llvm.LLVMOpaqueValue;
-- LLVMValueRef
--
type LLVMValueRef is access all llvm.LLVMOpaqueValue;
type LLVMValueRef_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMValueRef;
type LLVMValueRef_view is access all llvm.LLVMValueRef;
-- LLVMOpaqueBasicBlock
--
type LLVMOpaqueBasicBlock is new
Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueBasicBlock_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMOpaqueBasicBlock;
type LLVMOpaqueBasicBlock_view is access all llvm.LLVMOpaqueBasicBlock;
-- LLVMBasicBlockRef
--
type LLVMBasicBlockRef is access all llvm.LLVMOpaqueBasicBlock;
type LLVMBasicBlockRef_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMBasicBlockRef;
type LLVMBasicBlockRef_view is access all llvm.LLVMBasicBlockRef;
-- LLVMOpaqueBuilder
--
type LLVMOpaqueBuilder is new Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueBuilder_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMOpaqueBuilder;
type LLVMOpaqueBuilder_view is access all llvm.LLVMOpaqueBuilder;
-- LLVMBuilderRef
--
type LLVMBuilderRef is access all llvm.LLVMOpaqueBuilder;
type LLVMBuilderRef_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMBuilderRef;
type LLVMBuilderRef_view is access all llvm.LLVMBuilderRef;
-- LLVMOpaqueModuleProvider
--
type LLVMOpaqueModuleProvider is new
Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueModuleProvider_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMOpaqueModuleProvider;
type LLVMOpaqueModuleProvider_view is access all
llvm.LLVMOpaqueModuleProvider;
-- LLVMModuleProviderRef
--
type LLVMModuleProviderRef is access all llvm.LLVMOpaqueModuleProvider;
type LLVMModuleProviderRef_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMModuleProviderRef;
type LLVMModuleProviderRef_view is access all llvm.LLVMModuleProviderRef;
-- LLVMOpaqueMemoryBuffer
--
type LLVMOpaqueMemoryBuffer is new
Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaqueMemoryBuffer_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMOpaqueMemoryBuffer;
type LLVMOpaqueMemoryBuffer_view is access all llvm.LLVMOpaqueMemoryBuffer;
-- LLVMMemoryBufferRef
--
type LLVMMemoryBufferRef is access all llvm.LLVMOpaqueMemoryBuffer;
type LLVMMemoryBufferRef_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMMemoryBufferRef;
type LLVMMemoryBufferRef_view is access all llvm.LLVMMemoryBufferRef;
-- LLVMOpaquePassManager
--
type LLVMOpaquePassManager is new
Interfaces.C.Extensions.opaque_structure_def;
type LLVMOpaquePassManager_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMOpaquePassManager;
type LLVMOpaquePassManager_view is access all llvm.LLVMOpaquePassManager;
-- LLVMPassManagerRef
--
type LLVMPassManagerRef is access all llvm.LLVMOpaquePassManager;
type LLVMPassManagerRef_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMPassManagerRef;
type LLVMPassManagerRef_view is access all llvm.LLVMPassManagerRef;
-- LLVMAttribute
--
type LLVMAttribute is (
LLVMZExtAttribute,
LLVMSExtAttribute,
LLVMNoReturnAttribute,
LLVMInRegAttribute,
LLVMStructRetAttribute,
LLVMNoUnwindAttribute,
LLVMNoAliasAttribute,
LLVMByValAttribute,
LLVMNestAttribute,
LLVMReadNoneAttribute,
LLVMReadOnlyAttribute,
LLVMNoInlineAttribute,
LLVMAlwaysInlineAttribute,
LLVMOptimizeForSizeAttribute,
LLVMStackProtectAttribute,
LLVMStackProtectReqAttribute,
LLVMNoCaptureAttribute,
LLVMNoRedZoneAttribute,
LLVMNoImplicitFloatAttribute,
LLVMNakedAttribute);
for LLVMAttribute use
(LLVMZExtAttribute => 1,
LLVMSExtAttribute => 2,
LLVMNoReturnAttribute => 4,
LLVMInRegAttribute => 8,
LLVMStructRetAttribute => 16,
LLVMNoUnwindAttribute => 32,
LLVMNoAliasAttribute => 64,
LLVMByValAttribute => 128,
LLVMNestAttribute => 256,
LLVMReadNoneAttribute => 512,
LLVMReadOnlyAttribute => 1024,
LLVMNoInlineAttribute => 2048,
LLVMAlwaysInlineAttribute => 4096,
LLVMOptimizeForSizeAttribute => 8192,
LLVMStackProtectAttribute => 16384,
LLVMStackProtectReqAttribute => 32768,
LLVMNoCaptureAttribute => 2097152,
LLVMNoRedZoneAttribute => 4194304,
LLVMNoImplicitFloatAttribute => 8388608,
LLVMNakedAttribute => 16777216);
pragma Convention (C, LLVMAttribute);
type LLVMAttribute_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMAttribute;
type LLVMAttribute_view is access all llvm.LLVMAttribute;
-- LLVMTypeKind
--
type LLVMTypeKind is (
LLVMVoidTypeKind,
LLVMFloatTypeKind,
LLVMDoubleTypeKind,
LLVMX86_FP80TypeKind,
LLVMFP128TypeKind,
LLVMPPC_FP128TypeKind,
LLVMLabelTypeKind,
LLVMIntegerTypeKind,
LLVMFunctionTypeKind,
LLVMStructTypeKind,
LLVMArrayTypeKind,
LLVMPointerTypeKind,
LLVMOpaqueTypeKind,
LLVMVectorTypeKind,
LLVMMetadataTypeKind);
for LLVMTypeKind use
(LLVMVoidTypeKind => 0,
LLVMFloatTypeKind => 1,
LLVMDoubleTypeKind => 2,
LLVMX86_FP80TypeKind => 3,
LLVMFP128TypeKind => 4,
LLVMPPC_FP128TypeKind => 5,
LLVMLabelTypeKind => 6,
LLVMIntegerTypeKind => 7,
LLVMFunctionTypeKind => 8,
LLVMStructTypeKind => 9,
LLVMArrayTypeKind => 10,
LLVMPointerTypeKind => 11,
LLVMOpaqueTypeKind => 12,
LLVMVectorTypeKind => 13,
LLVMMetadataTypeKind => 14);
pragma Convention (C, LLVMTypeKind);
type LLVMTypeKind_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeKind;
type LLVMTypeKind_view is access all llvm.LLVMTypeKind;
-- LLVMLinkage
--
type LLVMLinkage is (
LLVMExternalLinkage,
LLVMAvailableExternallyLinkage,
LLVMLinkOnceAnyLinkage,
LLVMLinkOnceODRLinkage,
LLVMWeakAnyLinkage,
LLVMWeakODRLinkage,
LLVMAppendingLinkage,
LLVMInternalLinkage,
LLVMPrivateLinkage,
LLVMDLLImportLinkage,
LLVMDLLExportLinkage,
LLVMExternalWeakLinkage,
LLVMGhostLinkage,
LLVMCommonLinkage,
LLVMLinkerPrivateLinkage,
LLVMLinkerPrivateWeakLinkage);
for LLVMLinkage use
(LLVMExternalLinkage => 0,
LLVMAvailableExternallyLinkage => 1,
LLVMLinkOnceAnyLinkage => 2,
LLVMLinkOnceODRLinkage => 3,
LLVMWeakAnyLinkage => 4,
LLVMWeakODRLinkage => 5,
LLVMAppendingLinkage => 6,
LLVMInternalLinkage => 7,
LLVMPrivateLinkage => 8,
LLVMDLLImportLinkage => 9,
LLVMDLLExportLinkage => 10,
LLVMExternalWeakLinkage => 11,
LLVMGhostLinkage => 12,
LLVMCommonLinkage => 13,
LLVMLinkerPrivateLinkage => 14,
LLVMLinkerPrivateWeakLinkage => 15);
pragma Convention (C, LLVMLinkage);
type LLVMLinkage_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMLinkage;
type LLVMLinkage_view is access all llvm.LLVMLinkage;
-- LLVMVisibility
--
type LLVMVisibility is (
LLVMDefaultVisibility,
LLVMHiddenVisibility,
LLVMProtectedVisibility);
for LLVMVisibility use
(LLVMDefaultVisibility => 0,
LLVMHiddenVisibility => 1,
LLVMProtectedVisibility => 2);
pragma Convention (C, LLVMVisibility);
type LLVMVisibility_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMVisibility;
type LLVMVisibility_view is access all llvm.LLVMVisibility;
-- LLVMCallConv
--
type LLVMCallConv is (
LLVMCCallConv,
LLVMFastCallConv,
LLVMColdCallConv,
LLVMX86StdcallCallConv,
LLVMX86FastcallCallConv);
for LLVMCallConv use
(LLVMCCallConv => 0,
LLVMFastCallConv => 8,
LLVMColdCallConv => 9,
LLVMX86StdcallCallConv => 64,
LLVMX86FastcallCallConv => 65);
pragma Convention (C, LLVMCallConv);
type LLVMCallConv_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCallConv;
type LLVMCallConv_view is access all llvm.LLVMCallConv;
-- LLVMIntPredicate
--
type LLVMIntPredicate is (
LLVMIntEQ,
LLVMIntNE,
LLVMIntUGT,
LLVMIntUGE,
LLVMIntULT,
LLVMIntULE,
LLVMIntSGT,
LLVMIntSGE,
LLVMIntSLT,
LLVMIntSLE);
for LLVMIntPredicate use
(LLVMIntEQ => 32,
LLVMIntNE => 33,
LLVMIntUGT => 34,
LLVMIntUGE => 35,
LLVMIntULT => 36,
LLVMIntULE => 37,
LLVMIntSGT => 38,
LLVMIntSGE => 39,
LLVMIntSLT => 40,
LLVMIntSLE => 41);
pragma Convention (C, LLVMIntPredicate);
type LLVMIntPredicate_array is
array (Interfaces.C.size_t range <>) of aliased llvm.LLVMIntPredicate;
type LLVMIntPredicate_view is access all llvm.LLVMIntPredicate;
-- LLVMRealPredicate
--
type LLVMRealPredicate is (
LLVMRealPredicateFalse,
LLVMRealOEQ,
LLVMRealOGT,
LLVMRealOGE,
LLVMRealOLT,
LLVMRealOLE,
LLVMRealONE,
LLVMRealORD,
LLVMRealUNO,
LLVMRealUEQ,
LLVMRealUGT,
LLVMRealUGE,
LLVMRealULT,
LLVMRealULE,
LLVMRealUNE,
LLVMRealPredicateTrue);
for LLVMRealPredicate use
(LLVMRealPredicateFalse => 0,
LLVMRealOEQ => 1,
LLVMRealOGT => 2,
LLVMRealOGE => 3,
LLVMRealOLT => 4,
LLVMRealOLE => 5,
LLVMRealONE => 6,
LLVMRealORD => 7,
LLVMRealUNO => 8,
LLVMRealUEQ => 9,
LLVMRealUGT => 10,
LLVMRealUGE => 11,
LLVMRealULT => 12,
LLVMRealULE => 13,
LLVMRealUNE => 14,
LLVMRealPredicateTrue => 15);
pragma Convention (C, LLVMRealPredicate);
type LLVMRealPredicate_array is
array (Interfaces.C.size_t range <>)
of aliased llvm.LLVMRealPredicate;
type LLVMRealPredicate_view is access all llvm.LLVMRealPredicate;
-- ModuleProvider
--
type ModuleProvider is new Interfaces.C.Extensions.incomplete_class_def;
type ModuleProvider_array is
array (Interfaces.C.size_t range <>) of aliased llvm.ModuleProvider;
type ModuleProvider_view is access all llvm.ModuleProvider;
-- MemoryBuffer
--
type MemoryBuffer is new Interfaces.C.Extensions.incomplete_class_def;
type MemoryBuffer_array is
array (Interfaces.C.size_t range <>) of aliased llvm.MemoryBuffer;
type MemoryBuffer_view is access all llvm.MemoryBuffer;
-- PassManagerBase
--
type PassManagerBase is new Interfaces.C.Extensions.incomplete_class_def;
type PassManagerBase_array is
array (Interfaces.C.size_t range <>) of aliased llvm.PassManagerBase;
type PassManagerBase_view is access all llvm.PassManagerBase;
end llvm;