Skip to content

Commit 9015a8c

Browse files
committed
Extend Types with: Linkage, Visibility, UnnamedAddr, DLLStorageClass, CallConv
1 parent 1a36aba commit 9015a8c

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

llvm-api/LLVM/Core/Types/Types.swift

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,3 +331,126 @@ public enum TypeKind: UInt32 {
331331
/// Get `LLVMTypeKind` from current type
332332
public var llvm: LLVMTypeKind { LLVMTypeKind(rawValue: rawValue) }
333333
}
334+
335+
public enum Linkage: UInt32 {
336+
case ExternalLinkage = 0 /** < Externally visible function */
337+
case AvailableExternallyLinkage
338+
case LinkOnceAnyLinkage /** < Keep one copy of function when linking (inline) */
339+
case LinkOnceODRLinkage /** < Same, but only replaced by something equivalent. */
340+
case LinkOnceODRAutoHideLinkage /** < Obsolete */
341+
case WeakAnyLinkage /** < Keep one copy of function when linking (weak) */
342+
case WeakODRLinkage /** < Same, but only replaced by equivalent. */
343+
case AppendingLinkage /** < Special purpose, only applies to global arrays */
344+
case InternalLinkage /** < Rename collisions when linking functions) */
345+
case PrivateLinkage /** < Like Internal, but omit from symbol table */
346+
case DLLImportLinkage /** < Obsolete */
347+
case DLLExportLinkage /** < Obsolete */
348+
case ExternalWeakLinkage /** < ExternalWeak linkage description */
349+
case GhostLinkage /** < Obsolete */
350+
case CommonLinkage /** < Tentative definitions */
351+
case LinkerPrivateLinkage /** < Like Private, but linker removes. */
352+
case LinkerPrivateWeakLinkage /** < Like LinkerPrivate, but is weak. */
353+
354+
/// Init enum from `LLVMLinkage`
355+
public init?(from ty: LLVMLinkage) {
356+
self.init(rawValue: ty.rawValue)
357+
}
358+
359+
/// Get `LLVMLinkage` from current type
360+
public var llvm: LLVMLinkage { LLVMLinkage(rawValue: rawValue) }
361+
}
362+
363+
public enum Visibility: UInt32 {
364+
case DefaultVisibility = 0 /** < The GV is visible */
365+
case HiddenVisibility /** < The GV is hidden */
366+
case ProtectedVisibility /** < The GV is protected */
367+
368+
/// Init enum from `LLVMTVisibility`
369+
public init?(from ty: LLVMVisibility) {
370+
self.init(rawValue: ty.rawValue)
371+
}
372+
373+
/// Get `LLVMTypeKind` from current type
374+
public var llvm: LLVMVisibility { LLVMVisibility(rawValue: rawValue) }
375+
}
376+
377+
public enum UnnamedAddr: UInt32 {
378+
case NoUnnamedAddr = 0 /** < Address of the GV is significant. */
379+
case LocalUnnamedAddr /** < Address of the GV is locally insignificant. */
380+
case GlobalUnnamedAddr /** < Address of the GV is globally insignificant. */
381+
382+
/// Init enum from `LLVMUnnamedAddr`
383+
public init?(from ty: LLVMUnnamedAddr) {
384+
self.init(rawValue: ty.rawValue)
385+
}
386+
387+
/// Get `LLVMUnnamedAddr` from current type
388+
public var llvm: LLVMUnnamedAddr { LLVMUnnamedAddr(rawValue: rawValue) }
389+
}
390+
391+
public enum DLLStorageClass: UInt32 {
392+
case DefaultStorageClass = 0
393+
case DLLImportStorageClass = 1 /** < Function to be imported from DLL. */
394+
case DLLExportStorageClass = 2 /** < Function to be accessible from DLL. */
395+
396+
/// Init enum from `LLVMDLLStorageClass`
397+
public init?(from ty: LLVMDLLStorageClass) {
398+
self.init(rawValue: ty.rawValue)
399+
}
400+
401+
/// Get `LLVMDLLStorageClass` from current type
402+
public var llvm: LLVMDLLStorageClass { LLVMDLLStorageClass(rawValue: rawValue) }
403+
}
404+
405+
public enum CallConv: UInt32 {
406+
case CCallConv = 0
407+
case FastCallConv = 8
408+
case ColdCallConv = 9
409+
case GHCCallConv = 10
410+
case HiPECallConv = 11
411+
case WebKitJSCallConv = 12
412+
case AnyRegCallConv = 13
413+
case PreserveMostCallConv = 14
414+
case PreserveAllCallConv = 15
415+
case SwiftCallConv = 16
416+
case CXXFASTTLSCallConv = 17
417+
case X86StdcallCallConv = 64
418+
case X86FastcallCallConv = 65
419+
case ARMAPCSCallConv = 66
420+
case ARMAAPCSCallConv = 67
421+
case ARMAAPCSVFPCallConv = 68
422+
case MSP430INTRCallConv = 69
423+
case X86ThisCallCallConv = 70
424+
case PTXKernelCallConv = 71
425+
case PTXDeviceCallConv = 72
426+
case SPIRFUNCCallConv = 75
427+
case SPIRKERNELCallConv = 76
428+
case IntelOCLBICallConv = 77
429+
case X8664SysVCallConv = 78
430+
case Win64CallConv = 79
431+
case X86VectorCallCallConv = 80
432+
case HHVMCallConv = 81
433+
case HHVMCCallConv = 82
434+
case X86INTRCallConv = 83
435+
case AVRINTRCallConv = 84
436+
case AVRSIGNALCallConv = 85
437+
case AVRBUILTINCallConv = 86
438+
case AMDGPUVSCallConv = 87
439+
case AMDGPUGSCallConv = 88
440+
case AMDGPUPSCallConv = 89
441+
case AMDGPUCSCallConv = 90
442+
case AMDGPUKERNELCallConv = 91
443+
case X86RegCallCallConv = 92
444+
case AMDGPUHSCallConv = 93
445+
case MSP430BUILTINCallConv = 94
446+
case AMDGPULSCallConv = 95
447+
case AMDGPUESCallConv = 96
448+
449+
/// Init enum from `LLVMCallConv`
450+
public init?(from ty: LLVMCallConv) {
451+
self.init(rawValue: ty.rawValue)
452+
}
453+
454+
/// Get `LLVMCallConv` from current type
455+
public var llvm: LLVMCallConv { LLVMCallConv(rawValue: rawValue) }
456+
}

0 commit comments

Comments
 (0)