/extra/llvm/core/core.factor

http://github.com/abeaumont/factor · Factor · 419 lines · 303 code · 78 blank · 38 comment · 1 complexity · b7fcbdf6e74eaa180c132d0ae582114f MD5 · raw file

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