1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
use super::prelude::*;
#[repr(C)]
pub enum LLVMByteOrdering {
LLVMBigEndian = 0,
LLVMLittleEndian = 1,
}
pub enum LLVMOpaqueTargetData {}
pub type LLVMTargetDataRef = *mut LLVMOpaqueTargetData;
pub enum LLVMOpaqueTargetLibraryInfotData {}
pub type LLVMTargetLibraryInfoRef = *mut LLVMOpaqueTargetLibraryInfotData;
extern "C" {
pub fn LLVMInitializeAMDGPUTargetInfo();
pub fn LLVMInitializeAMDGPUTarget();
pub fn LLVMInitializeAMDGPUTargetMC();
pub fn LLVMInitializeAMDGPUAsmPrinter();
pub fn LLVMInitializeAMDGPUAsmParser();
pub fn LLVMInitializeSystemZTargetInfo();
pub fn LLVMInitializeSystemZTarget();
pub fn LLVMInitializeSystemZTargetMC();
pub fn LLVMInitializeSystemZAsmPrinter();
pub fn LLVMInitializeSystemZAsmParser();
pub fn LLVMInitializeSystemZDisassembler();
pub fn LLVMInitializeHexagonTargetInfo();
pub fn LLVMInitializeHexagonTarget();
pub fn LLVMInitializeHexagonTargetMC();
pub fn LLVMInitializeHexagonAsmPrinter();
pub fn LLVMInitializeHexagonDisassembler();
pub fn LLVMInitializeNVPTXTargetInfo();
pub fn LLVMInitializeNVPTXTarget();
pub fn LLVMInitializeNVPTXTargetMC();
pub fn LLVMInitializeNVPTXAsmPrinter();
pub fn LLVMInitializeMSP430TargetInfo();
pub fn LLVMInitializeMSP430Target();
pub fn LLVMInitializeMSP430TargetMC();
pub fn LLVMInitializeMSP430AsmPrinter();
pub fn LLVMInitializeXCoreTargetInfo();
pub fn LLVMInitializeXCoreTarget();
pub fn LLVMInitializeXCoreTargetMC();
pub fn LLVMInitializeXCoreAsmPrinter();
pub fn LLVMInitializeXCoreDisassembler();
pub fn LLVMInitializeMipsTargetInfo();
pub fn LLVMInitializeMipsTarget();
pub fn LLVMInitializeMipsTargetMC();
pub fn LLVMInitializeMipsAsmPrinter();
pub fn LLVMInitializeMipsAsmParser();
pub fn LLVMInitializeMipsDisassembler();
pub fn LLVMInitializeAArch64TargetInfo();
pub fn LLVMInitializeAArch64Target();
pub fn LLVMInitializeAArch64TargetMC();
pub fn LLVMInitializeAArch64AsmPrinter();
pub fn LLVMInitializeAArch64AsmParser();
pub fn LLVMInitializeAArch64Disassembler();
pub fn LLVMInitializeARMTargetInfo();
pub fn LLVMInitializeARMTarget();
pub fn LLVMInitializeARMTargetMC();
pub fn LLVMInitializeARMAsmPrinter();
pub fn LLVMInitializeARMAsmParser();
pub fn LLVMInitializeARMDisassembler();
pub fn LLVMInitializePowerPCTargetInfo();
pub fn LLVMInitializePowerPCTarget();
pub fn LLVMInitializePowerPCTargetMC();
pub fn LLVMInitializePowerPCAsmPrinter();
pub fn LLVMInitializePowerPCAsmParser();
pub fn LLVMInitializePowerPCDisassembler();
pub fn LLVMInitializeSparcTargetInfo();
pub fn LLVMInitializeSparcTarget();
pub fn LLVMInitializeSparcTargetMC();
pub fn LLVMInitializeSparcAsmPrinter();
pub fn LLVMInitializeSparcAsmParser();
pub fn LLVMInitializeSparcDisassembler();
pub fn LLVMInitializeX86TargetInfo();
pub fn LLVMInitializeX86Target();
pub fn LLVMInitializeX86TargetMC();
pub fn LLVMInitializeX86AsmPrinter();
pub fn LLVMInitializeX86AsmParser();
pub fn LLVMInitializeX86Disassembler();
pub fn LLVMInitializeBPFTargetInfo();
pub fn LLVMInitializeBPFTarget();
pub fn LLVMInitializeBPFTargetMC();
pub fn LLVMInitializeBPFAsmPrinter();
}
extern "C" {
pub fn LLVMGetModuleDataLayout(M: LLVMModuleRef) -> LLVMTargetDataRef;
pub fn LLVMSetModuleDataLayout(M: LLVMModuleRef, R: LLVMTargetDataRef);
pub fn LLVMCreateTargetData(StringRep: *const ::libc::c_char) -> LLVMTargetDataRef;
pub fn LLVMAddTargetLibraryInfo(TLI: LLVMTargetLibraryInfoRef, PM: LLVMPassManagerRef);
pub fn LLVMCopyStringRepOfTargetData(TD: LLVMTargetDataRef) -> *mut ::libc::c_char;
pub fn LLVMByteOrder(TD: LLVMTargetDataRef) -> LLVMByteOrdering;
pub fn LLVMPointerSize(TD: LLVMTargetDataRef) -> ::libc::c_uint;
pub fn LLVMPointerSizeForAS(TD: LLVMTargetDataRef, AS: ::libc::c_uint) -> ::libc::c_uint;
pub fn LLVMIntPtrType(TD: LLVMTargetDataRef) -> LLVMTypeRef;
pub fn LLVMIntPtrTypeForAS(TD: LLVMTargetDataRef, AS: ::libc::c_uint) -> LLVMTypeRef;
pub fn LLVMIntPtrTypeInContext(C: LLVMContextRef, TD: LLVMTargetDataRef) -> LLVMTypeRef;
pub fn LLVMIntPtrTypeForASInContext(C: LLVMContextRef,
TD: LLVMTargetDataRef,
AS: ::libc::c_uint)
-> LLVMTypeRef;
pub fn LLVMSizeOfTypeInBits(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_ulonglong;
pub fn LLVMStoreSizeOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_ulonglong;
pub fn LLVMABISizeOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_ulonglong;
pub fn LLVMABIAlignmentOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_uint;
pub fn LLVMCallFrameAlignmentOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_uint;
pub fn LLVMPreferredAlignmentOfType(TD: LLVMTargetDataRef, Ty: LLVMTypeRef) -> ::libc::c_uint;
pub fn LLVMPreferredAlignmentOfGlobal(TD: LLVMTargetDataRef,
GlobalVar: LLVMValueRef)
-> ::libc::c_uint;
pub fn LLVMElementAtOffset(TD: LLVMTargetDataRef,
StructTy: LLVMTypeRef,
Offset: ::libc::c_ulonglong)
-> ::libc::c_uint;
pub fn LLVMOffsetOfElement(TD: LLVMTargetDataRef,
StructTy: LLVMTypeRef,
Element: ::libc::c_uint)
-> ::libc::c_ulonglong;
pub fn LLVMDisposeTargetData(TD: LLVMTargetDataRef);
}
extern "C" {
pub fn LLVM_InitializeAllTargetInfos();
pub fn LLVM_InitializeAllTargets();
pub fn LLVM_InitializeAllTargetMCs();
pub fn LLVM_InitializeAllAsmPrinters();
pub fn LLVM_InitializeAllAsmParsers();
pub fn LLVM_InitializeAllDisassemblers();
pub fn LLVM_InitializeNativeTarget() -> LLVMBool;
pub fn LLVM_InitializeNativeAsmParser() -> LLVMBool;
pub fn LLVM_InitializeNativeAsmPrinter() -> LLVMBool;
pub fn LLVM_InitializeNativeDisassembler() -> LLVMBool;
}