]> gitweb.factorcode.org Git - factor.git/blob - extra/llvm/core/core.factor
0d1b22e2887828af31b44d469ded158273f537f7
[factor.git] / extra / llvm / core / core.factor
1 ! Copyright (C) 2009 Matthew Willis.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.libraries alien.syntax system sequences combinators kernel ;
4
5 IN: llvm.core
6
7 <<
8
9 : add-llvm-library ( name -- )
10     dup
11     {
12         { [ os macosx? ] [ "/usr/local/lib/lib" ".dylib" surround ] }
13         { [ os windows? ] [ ".dll" append ] }
14         { [ os unix? ] [ "lib" ".so" surround ] }
15     } cond "cdecl" add-library ;
16
17 "LLVMSystem" add-llvm-library
18 "LLVMSupport" add-llvm-library
19 "LLVMCore" add-llvm-library
20 "LLVMBitReader" add-llvm-library
21
22 >>
23
24 ! llvm-c/Core.h
25
26 LIBRARY: LLVMCore
27
28 TYPEDEF: uint unsigned
29 TYPEDEF: unsigned enum
30
31 CONSTANT: LLVMZExtAttribute         BIN: 1
32 CONSTANT: LLVMSExtAttribute         BIN: 10
33 CONSTANT: LLVMNoReturnAttribute     BIN: 100
34 CONSTANT: LLVMInRegAttribute        BIN: 1000
35 CONSTANT: LLVMStructRetAttribute    BIN: 10000
36 CONSTANT: LLVMNoUnwindAttribute     BIN: 100000
37 CONSTANT: LLVMNoAliasAttribute      BIN: 1000000
38 CONSTANT: LLVMByValAttribute        BIN: 10000000
39 CONSTANT: LLVMNestAttribute         BIN: 100000000
40 CONSTANT: LLVMReadNoneAttribute     BIN: 1000000000
41 CONSTANT: LLVMReadOnlyAttribute     BIN: 10000000000
42 TYPEDEF: enum LLVMAttribute;
43
44 C-ENUM:
45   LLVMVoidTypeKind
46   LLVMFloatTypeKind
47   LLVMDoubleTypeKind
48   LLVMX86_FP80TypeKind
49   LLVMFP128TypeKind
50   LLVMPPC_FP128TypeKind
51   LLVMLabelTypeKind
52   LLVMMetadataTypeKind
53   LLVMIntegerTypeKind
54   LLVMFunctionTypeKind
55   LLVMStructTypeKind
56   LLVMArrayTypeKind
57   LLVMPointerTypeKind
58   LLVMOpaqueTypeKind
59   LLVMVectorTypeKind ;
60 TYPEDEF: enum LLVMTypeKind
61
62 C-ENUM:
63   LLVMExternalLinkage
64   LLVMLinkOnceLinkage
65   LLVMWeakLinkage
66   LLVMAppendingLinkage
67   LLVMInternalLinkage
68   LLVMDLLImportLinkage
69   LLVMDLLExportLinkage
70   LLVMExternalWeakLinkage
71   LLVMGhostLinkage ;
72 TYPEDEF: enum LLVMLinkage
73
74 C-ENUM:
75   LLVMDefaultVisibility
76   LLVMHiddenVisibility
77   LLVMProtectedVisibility ;
78 TYPEDEF: enum LLVMVisibility
79
80 CONSTANT: LLVMCCallConv             0
81 CONSTANT: LLVMFastCallConv          8
82 CONSTANT: LLVMColdCallConv          9
83 CONSTANT: LLVMX86StdcallCallConv    64
84 CONSTANT: LLVMX86FastcallCallConv   65
85 TYPEDEF: enum LLVMCallConv
86
87 CONSTANT: LLVMIntEQ                 32
88 CONSTANT: LLVMIntNE                 33
89 CONSTANT: LLVMIntUGT                34
90 CONSTANT: LLVMIntUGE                35
91 CONSTANT: LLVMIntULT                36
92 CONSTANT: LLVMIntULE                37
93 CONSTANT: LLVMIntSGT                38
94 CONSTANT: LLVMIntSGE                39
95 CONSTANT: LLVMIntSLT                40
96 CONSTANT: LLVMIntSLE                41
97 TYPEDEF: enum LLVMIntPredicate
98
99 C-ENUM:
100   LLVMRealPredicateFalse
101   LLVMRealOEQ
102   LLVMRealOGT
103   LLVMRealOGE
104   LLVMRealOLT
105   LLVMRealOLE
106   LLVMRealONE
107   LLVMRealORD
108   LLVMRealUNO
109   LLVMRealUEQ
110   LLVMRealUGT
111   LLVMRealUGE
112   LLVMRealULT
113   LLVMRealULE
114   LLVMRealUNE
115   LLVMRealPredicateTrue ;
116 TYPEDEF: enum LLVMRealPredicate
117
118 ! Opaque Types
119
120 TYPEDEF: void* LLVMModuleRef
121
122 TYPEDEF: void* LLVMPassManagerRef
123
124 TYPEDEF: void* LLVMModuleProviderRef
125
126 TYPEDEF: void* LLVMTypeRef
127
128 TYPEDEF: void* LLVMTypeHandleRef
129
130 TYPEDEF: void* LLVMValueRef
131
132 TYPEDEF: void* LLVMBasicBlockRef
133
134 TYPEDEF: void* LLVMBuilderRef
135
136 TYPEDEF: void* LLVMMemoryBufferRef
137
138 ! Functions
139
140 FUNCTION: void LLVMDisposeMessage ( char* Message ) ;
141
142 FUNCTION: LLVMModuleRef LLVMModuleCreateWithName ( char* ModuleID ) ;
143
144 FUNCTION: int LLVMAddTypeName ( LLVMModuleRef M, char* Name, LLVMTypeRef Ty ) ;
145
146 FUNCTION: void LLVMDisposeModule ( LLVMModuleRef M ) ;
147
148 FUNCTION: void LLVMDumpModule ( LLVMModuleRef M ) ;
149
150 FUNCTION: LLVMModuleProviderRef
151 LLVMCreateModuleProviderForExistingModule ( LLVMModuleRef M ) ;
152
153 FUNCTION: void LLVMDisposeModuleProvider ( LLVMModuleProviderRef MP ) ;
154
155 ! Types
156
157 ! LLVM types conform to the following hierarchy:
158 !  
159 !    types:
160 !      integer type
161 !      real type
162 !      function type
163 !      sequence types:
164 !        array type
165 !        pointer type
166 !        vector type
167 !      void type
168 !      label type
169 !      opaque type
170
171 ! See llvm::LLVMTypeKind::getTypeID.
172 FUNCTION: LLVMTypeKind LLVMGetTypeKind ( LLVMTypeRef Ty ) ;
173
174 ! Operations on integer types
175 FUNCTION: LLVMTypeRef LLVMInt1Type ( ) ;
176 FUNCTION: LLVMTypeRef LLVMInt8Type ( ) ;
177 FUNCTION: LLVMTypeRef LLVMInt16Type ( ) ;
178 FUNCTION: LLVMTypeRef LLVMInt32Type ( ) ;
179 FUNCTION: LLVMTypeRef LLVMInt64Type ( ) ;
180 FUNCTION: LLVMTypeRef LLVMIntType ( unsigned NumBits ) ;
181 FUNCTION: unsigned LLVMGetIntTypeWidth ( LLVMTypeRef IntegerTy ) ;
182
183 ! Operations on real types
184 FUNCTION: LLVMTypeRef LLVMFloatType ( ) ;
185 FUNCTION: LLVMTypeRef LLVMDoubleType ( ) ;
186 FUNCTION: LLVMTypeRef LLVMX86FP80Type ( ) ;
187 FUNCTION: LLVMTypeRef LLVMFP128Type ( ) ;
188 FUNCTION: LLVMTypeRef LLVMPPCFP128Type ( ) ;
189
190 ! Operations on function types
191 FUNCTION: LLVMTypeRef
192 LLVMFunctionType ( LLVMTypeRef ReturnType, LLVMTypeRef* ParamTypes, unsigned ParamCount, int IsVarArg ) ;
193 FUNCTION: int LLVMIsFunctionVarArg ( LLVMTypeRef FunctionTy ) ;
194 FUNCTION: LLVMTypeRef LLVMGetReturnType ( LLVMTypeRef FunctionTy ) ;
195 FUNCTION: unsigned LLVMCountParamTypes ( LLVMTypeRef FunctionTy ) ;
196 FUNCTION: void LLVMGetParamTypes ( LLVMTypeRef FunctionTy, LLVMTypeRef* Dest ) ;
197
198 ! Operations on struct types
199 FUNCTION: LLVMTypeRef
200 LLVMStructType ( LLVMTypeRef* ElementTypes, unsigned ElementCount, int Packed ) ;
201 FUNCTION: unsigned LLVMCountStructElementTypes ( LLVMTypeRef StructTy ) ;
202 FUNCTION: void LLVMGetStructElementTypes ( LLVMTypeRef StructTy, LLVMTypeRef* Dest ) ;
203 FUNCTION: int LLVMIsPackedStruct ( LLVMTypeRef StructTy ) ;
204
205 ! Operations on array, pointer, and vector types (sequence types)
206 FUNCTION: LLVMTypeRef LLVMArrayType ( LLVMTypeRef ElementType, unsigned ElementCount ) ;
207 FUNCTION: LLVMTypeRef LLVMPointerType ( LLVMTypeRef ElementType, unsigned AddressSpace ) ;
208 FUNCTION: LLVMTypeRef LLVMVectorType ( LLVMTypeRef ElementType, unsigned ElementCount ) ;
209
210 FUNCTION: LLVMTypeRef LLVMGetElementType ( LLVMTypeRef Ty ) ;
211 FUNCTION: unsigned LLVMGetArrayLength ( LLVMTypeRef ArrayTy ) ;
212 FUNCTION: unsigned LLVMGetPointerAddressSpace ( LLVMTypeRef PointerTy ) ;
213 FUNCTION: unsigned LLVMGetVectorSize ( LLVMTypeRef VectorTy ) ;
214
215 ! Operations on other types
216 FUNCTION: LLVMTypeRef LLVMVoidType ( ) ;
217 FUNCTION: LLVMTypeRef LLVMLabelType ( ) ;
218 FUNCTION: LLVMTypeRef LLVMOpaqueType ( ) ;
219
220 ! Operations on type handles
221 FUNCTION: LLVMTypeHandleRef LLVMCreateTypeHandle ( LLVMTypeRef PotentiallyAbstractTy ) ;
222 FUNCTION: void LLVMRefineType ( LLVMTypeRef AbstractTy, LLVMTypeRef ConcreteTy ) ;
223 FUNCTION: LLVMTypeRef LLVMResolveTypeHandle ( LLVMTypeHandleRef TypeHandle ) ;
224 FUNCTION: void LLVMDisposeTypeHandle ( LLVMTypeHandleRef TypeHandle ) ;
225
226 ! Types end
227
228 FUNCTION: unsigned LLVMCountParams ( LLVMValueRef Fn ) ;
229
230 FUNCTION: void LLVMGetParams ( LLVMValueRef Fn, LLVMValueRef* Params ) ;
231
232 FUNCTION: LLVMValueRef
233 LLVMAddFunction ( LLVMModuleRef M, char* Name, LLVMTypeRef FunctionTy ) ;
234
235 FUNCTION: LLVMValueRef LLVMGetFirstFunction ( LLVMModuleRef M ) ;
236
237 FUNCTION: LLVMValueRef LLVMGetNextFunction ( LLVMValueRef Fn ) ;
238
239 FUNCTION: unsigned LLVMGetFunctionCallConv ( LLVMValueRef Fn ) ;
240
241 FUNCTION: void LLVMSetFunctionCallConv ( LLVMValueRef Fn, unsigned CC ) ;
242
243 FUNCTION: LLVMBasicBlockRef
244 LLVMAppendBasicBlock ( LLVMValueRef Fn, char* Name ) ;
245
246 FUNCTION: LLVMValueRef LLVMGetBasicBlockParent ( LLVMBasicBlockRef BB ) ;
247
248 ! Values
249
250 FUNCTION: LLVMTypeRef LLVMTypeOf ( LLVMValueRef Val ) ;
251 FUNCTION: char* LLVMGetValueName ( LLVMValueRef Val ) ;
252 FUNCTION: void LLVMSetValueName ( LLVMValueRef Val, char* Name ) ;
253 FUNCTION: void LLVMDumpValue ( LLVMValueRef Val ) ;
254
255 ! Instruction Builders
256
257 FUNCTION: LLVMBuilderRef LLVMCreateBuilder ( ) ;
258 FUNCTION: void LLVMPositionBuilder
259 ( LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Instr ) ;
260 FUNCTION: void LLVMPositionBuilderBefore
261 ( LLVMBuilderRef Builder, LLVMValueRef Instr ) ;
262 FUNCTION: void LLVMPositionBuilderAtEnd
263 ( LLVMBuilderRef Builder, LLVMBasicBlockRef Block ) ;
264 FUNCTION: LLVMBasicBlockRef LLVMGetInsertBlock
265 ( LLVMBuilderRef Builder ) ;
266 FUNCTION: void LLVMClearInsertionPosition
267 ( LLVMBuilderRef Builder ) ;
268 FUNCTION: void LLVMInsertIntoBuilder
269 ( LLVMBuilderRef Builder, LLVMValueRef Instr ) ;
270 FUNCTION: void LLVMDisposeBuilder
271 ( LLVMBuilderRef Builder ) ;
272
273 ! IB Terminators
274
275 FUNCTION: LLVMValueRef LLVMBuildRetVoid
276 ( LLVMBuilderRef Builder ) ;
277 FUNCTION: LLVMValueRef LLVMBuildRet
278 ( LLVMBuilderRef Builder, LLVMValueRef V ) ;
279 FUNCTION: LLVMValueRef LLVMBuildBr
280 ( LLVMBuilderRef Builder, LLVMBasicBlockRef Dest ) ;
281 FUNCTION: LLVMValueRef LLVMBuildCondBr
282 ( LLVMBuilderRef Builder, LLVMValueRef If, LLVMBasicBlockRef Then, LLVMBasicBlockRef Else ) ;
283 FUNCTION: LLVMValueRef LLVMBuildSwitch
284 ( LLVMBuilderRef Builder, LLVMValueRef V, LLVMBasicBlockRef Else, unsigned NumCases ) ;
285 FUNCTION: LLVMValueRef LLVMBuildInvoke
286 ( LLVMBuilderRef Builder, LLVMValueRef Fn, LLVMValueRef* Args, unsigned NumArgs,
287   LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, char* Name ) ;
288 FUNCTION: LLVMValueRef LLVMBuildUnwind
289 ( LLVMBuilderRef Builder ) ;
290 FUNCTION: LLVMValueRef LLVMBuildUnreachable
291 ( LLVMBuilderRef Builder ) ;
292
293 ! IB Add Case to Switch
294
295 FUNCTION: void LLVMAddCase
296 ( LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest ) ;
297
298 ! IB Arithmetic
299
300 FUNCTION: LLVMValueRef LLVMBuildAdd
301 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
302 FUNCTION: LLVMValueRef LLVMBuildSub
303 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
304 FUNCTION: LLVMValueRef LLVMBuildMul
305 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
306 FUNCTION: LLVMValueRef LLVMBuildUDiv
307 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
308 FUNCTION: LLVMValueRef LLVMBuildSDiv
309 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
310 FUNCTION: LLVMValueRef LLVMBuildFDiv
311 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
312 FUNCTION: LLVMValueRef LLVMBuildURem
313 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
314 FUNCTION: LLVMValueRef LLVMBuildSRem
315 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
316 FUNCTION: LLVMValueRef LLVMBuildFRem
317 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
318 FUNCTION: LLVMValueRef LLVMBuildShl
319 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
320 FUNCTION: LLVMValueRef LLVMBuildLShr
321 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
322 FUNCTION: LLVMValueRef LLVMBuildAShr
323 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
324 FUNCTION: LLVMValueRef LLVMBuildAnd
325 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
326 FUNCTION: LLVMValueRef LLVMBuildOr
327 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
328 FUNCTION: LLVMValueRef LLVMBuildXor
329 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
330 FUNCTION: LLVMValueRef LLVMBuildNeg
331 ( LLVMBuilderRef Builder, LLVMValueRef V, char* Name ) ;
332 FUNCTION: LLVMValueRef LLVMBuildNot
333 ( LLVMBuilderRef Builder, LLVMValueRef V, char* Name ) ;
334
335 ! IB Memory
336
337 FUNCTION: LLVMValueRef LLVMBuildMalloc
338 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, char* Name ) ;
339 FUNCTION: LLVMValueRef LLVMBuildArrayMalloc
340 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, LLVMValueRef Val, char* Name ) ;
341 FUNCTION: LLVMValueRef LLVMBuildAlloca
342 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, char* Name ) ;
343 FUNCTION: LLVMValueRef LLVMBuildArrayAlloca
344 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, LLVMValueRef Val, char* Name ) ;
345 FUNCTION: LLVMValueRef LLVMBuildFree
346 ( LLVMBuilderRef Builder, LLVMValueRef PointerVal ) ;
347 FUNCTION: LLVMValueRef LLVMBuildLoad
348 ( LLVMBuilderRef Builder, LLVMValueRef PointerVal, char* Name ) ;
349 FUNCTION: LLVMValueRef LLVMBuildStore
350 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMValueRef Ptr ) ;
351 FUNCTION: LLVMValueRef LLVMBuildGEP
352 ( LLVMBuilderRef B, LLVMValueRef Pointer, LLVMValueRef* Indices,
353   unsigned NumIndices, char* Name ) ;
354
355 ! IB Casts
356
357 FUNCTION: LLVMValueRef LLVMBuildTrunc
358 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
359 FUNCTION: LLVMValueRef LLVMBuildZExt
360 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
361 FUNCTION: LLVMValueRef LLVMBuildSExt
362 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
363 FUNCTION: LLVMValueRef LLVMBuildFPToUI
364 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
365 FUNCTION: LLVMValueRef LLVMBuildFPToSI
366 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
367 FUNCTION: LLVMValueRef LLVMBuildUIToFP
368 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
369 FUNCTION: LLVMValueRef LLVMBuildSIToFP
370 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
371 FUNCTION: LLVMValueRef LLVMBuildFPTrunc
372 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
373 FUNCTION: LLVMValueRef LLVMBuildFPExt
374 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
375 FUNCTION: LLVMValueRef LLVMBuildPtrToInt
376 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
377 FUNCTION: LLVMValueRef LLVMBuildIntToPtr
378 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
379 FUNCTION: LLVMValueRef LLVMBuildBitCast
380 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
381
382 ! IB Comparisons
383
384 FUNCTION: LLVMValueRef LLVMBuildICmp
385 ( LLVMBuilderRef Builder, LLVMIntPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
386 FUNCTION: LLVMValueRef LLVMBuildFCmp
387 ( LLVMBuilderRef Builder, LLVMRealPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
388
389 ! IB Misc Instructions
390
391 FUNCTION: LLVMValueRef LLVMBuildPhi
392 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, char* Name ) ;
393 FUNCTION: LLVMValueRef LLVMBuildCall
394 ( LLVMBuilderRef Builder, LLVMValueRef Fn, LLVMValueRef* Args, unsigned NumArgs, char* Name ) ;
395 FUNCTION: LLVMValueRef LLVMBuildSelect
396 ( LLVMBuilderRef Builder, LLVMValueRef If, LLVMValueRef Then, LLVMValueRef Else, char* Name ) ;
397 FUNCTION: LLVMValueRef LLVMBuildVAArg
398 ( LLVMBuilderRef Builder, LLVMValueRef List, LLVMTypeRef Ty, char* Name ) ;
399 FUNCTION: LLVMValueRef LLVMBuildExtractElement
400 ( LLVMBuilderRef Builder, LLVMValueRef VecVal, LLVMValueRef Index, char* Name ) ;
401 FUNCTION: LLVMValueRef LLVMBuildInsertElement
402 ( LLVMBuilderRef Builder, LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, char* Name ) ;
403 FUNCTION: LLVMValueRef LLVMBuildShuffleVector
404 ( LLVMBuilderRef Builder, LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, char* Name ) ;
405 FUNCTION: LLVMValueRef LLVMBuildExtractValue
406 ( LLVMBuilderRef Builder, LLVMValueRef AggVal, unsigned Index, char* Name ) ;
407 FUNCTION: LLVMValueRef LLVMBuildInsertValue
408 ( LLVMBuilderRef Builder, LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned Index, char* Name ) ;
409
410 ! Memory Buffers/Bit Reader
411
412 FUNCTION: int LLVMCreateMemoryBufferWithContentsOfFile
413 ( char* Path, LLVMMemoryBufferRef* OutMemBuf, char** OutMessage ) ;
414
415 FUNCTION: void LLVMDisposeMemoryBuffer ( LLVMMemoryBufferRef MemBuf ) ;
416
417 LIBRARY: LLVMBitReader
418
419 FUNCTION: int LLVMParseBitcode
420 ( LLVMMemoryBufferRef MemBuf, LLVMModuleRef* OutModule, char** OutMessage ) ;
421  
422 FUNCTION: int LLVMGetBitcodeModuleProvider
423 ( LLVMMemoryBufferRef MemBuf, LLVMModuleProviderRef* OutMP, char** OutMessage ) ;