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