1 USING: alien.libraries alien.syntax ;
7 "LLVMSystem" "/usr/local/lib/libLLVMSystem.dylib" "cdecl" add-library
9 "LLVMSupport" "/usr/local/lib/libLLVMSupport.dylib" "cdecl" add-library
11 "LLVMCore" "/usr/local/lib/libLLVMCore.dylib" "cdecl" add-library
19 TYPEDEF: uint unsigned
20 TYPEDEF: unsigned enum
22 CONSTANT: LLVMZExtAttribute BIN: 1
23 CONSTANT: LLVMSExtAttribute BIN: 10
24 CONSTANT: LLVMNoReturnAttribute BIN: 100
25 CONSTANT: LLVMInRegAttribute BIN: 1000
26 CONSTANT: LLVMStructRetAttribute BIN: 10000
27 CONSTANT: LLVMNoUnwindAttribute BIN: 100000
28 CONSTANT: LLVMNoAliasAttribute BIN: 1000000
29 CONSTANT: LLVMByValAttribute BIN: 10000000
30 CONSTANT: LLVMNestAttribute BIN: 100000000
31 CONSTANT: LLVMReadNoneAttribute BIN: 1000000000
32 CONSTANT: LLVMReadOnlyAttribute BIN: 10000000000
33 TYPEDEF: enum LLVMAttribute;
50 TYPEDEF: enum LLVMTypeKind
60 LLVMExternalWeakLinkage
62 TYPEDEF: enum LLVMLinkage
67 LLVMProtectedVisibility ;
68 TYPEDEF: enum LLVMVisibility
70 CONSTANT: LLVMCCallConv 0
71 CONSTANT: LLVMFastCallConv 8
72 CONSTANT: LLVMColdCallConv 9
73 CONSTANT: LLVMX86StdcallCallConv 64
74 CONSTANT: LLVMX86FastcallCallConv 65
75 TYPEDEF: enum LLVMCallConv
77 CONSTANT: LLVMIntEQ 32
78 CONSTANT: LLVMIntNE 33
79 CONSTANT: LLVMIntUGT 34
80 CONSTANT: LLVMIntUGE 35
81 CONSTANT: LLVMIntULT 36
82 CONSTANT: LLVMIntULE 37
83 CONSTANT: LLVMIntSGT 38
84 CONSTANT: LLVMIntSGE 39
85 CONSTANT: LLVMIntSLT 40
86 CONSTANT: LLVMIntSLE 41
87 TYPEDEF: enum LLVMIntPredicate
90 LLVMRealPredicateFalse
105 LLVMRealPredicateTrue ;
106 TYPEDEF: enum LLVMRealPredicate
110 TYPEDEF: void* LLVMModuleRef
112 TYPEDEF: void* LLVMPassManagerRef
114 TYPEDEF: void* LLVMModuleProviderRef
116 TYPEDEF: void* LLVMTypeRef
118 TYPEDEF: void* LLVMValueRef
120 TYPEDEF: void* LLVMBasicBlockRef
122 TYPEDEF: void* LLVMBuilderRef
126 FUNCTION: void LLVMDisposeMessage ( char *Message ) ;
128 FUNCTION: LLVMModuleRef LLVMModuleCreateWithName ( char* ModuleID ) ;
130 FUNCTION: int LLVMAddTypeName ( LLVMModuleRef M, char* Name, LLVMTypeRef Ty ) ;
132 FUNCTION: void LLVMDisposeModule ( LLVMModuleRef M ) ;
134 FUNCTION: void LLVMDumpModule ( LLVMModuleRef M ) ;
136 FUNCTION: LLVMModuleProviderRef
137 LLVMCreateModuleProviderForExistingModule ( LLVMModuleRef M ) ;
139 FUNCTION: void LLVMDisposeModuleProvider ( LLVMModuleProviderRef MP ) ;
141 FUNCTION: LLVMTypeRef LLVMIntType ( unsigned NumBits ) ;
143 FUNCTION: LLVMTypeRef
144 LLVMFunctionType ( LLVMTypeRef ReturnType,
145 LLVMTypeRef* ParamTypes,
149 FUNCTION: unsigned LLVMCountParams ( LLVMValueRef Fn ) ;
151 FUNCTION: void LLVMGetParams ( LLVMValueRef Fn, LLVMValueRef* Params ) ;
153 FUNCTION: LLVMValueRef
154 LLVMAddFunction ( LLVMModuleRef M, char* Name, LLVMTypeRef FunctionTy ) ;
156 FUNCTION: unsigned LLVMGetFunctionCallConv ( LLVMValueRef Fn ) ;
158 FUNCTION: void LLVMSetFunctionCallConv ( LLVMValueRef Fn, unsigned CC ) ;
160 FUNCTION: LLVMBasicBlockRef
161 LLVMAppendBasicBlock ( LLVMValueRef Fn, char* Name ) ;
163 FUNCTION: LLVMValueRef LLVMGetBasicBlockParent ( LLVMBasicBlockRef BB ) ;
167 FUNCTION: LLVMTypeRef LLVMTypeOf ( LLVMValueRef Val ) ;
168 FUNCTION: char* LLVMGetValueName ( LLVMValueRef Val ) ;
169 FUNCTION: void LLVMSetValueName ( LLVMValueRef Val, char* Name ) ;
170 FUNCTION: void LLVMDumpValue ( LLVMValueRef Val ) ;
172 ! Instruction Builders
174 FUNCTION: LLVMBuilderRef LLVMCreateBuilder ( ) ;
175 FUNCTION: void LLVMPositionBuilder
176 ( LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Instr ) ;
177 FUNCTION: void LLVMPositionBuilderBefore
178 ( LLVMBuilderRef Builder, LLVMValueRef Instr ) ;
179 FUNCTION: void LLVMPositionBuilderAtEnd
180 ( LLVMBuilderRef Builder, LLVMBasicBlockRef Block ) ;
181 FUNCTION: LLVMBasicBlockRef LLVMGetInsertBlock
182 ( LLVMBuilderRef Builder ) ;
183 FUNCTION: void LLVMClearInsertionPosition
184 ( LLVMBuilderRef Builder ) ;
185 FUNCTION: void LLVMInsertIntoBuilder
186 ( LLVMBuilderRef Builder, LLVMValueRef Instr ) ;
187 FUNCTION: void LLVMDisposeBuilder
188 ( LLVMBuilderRef Builder ) ;
192 FUNCTION: LLVMValueRef LLVMBuildRetVoid
193 ( LLVMBuilderRef Builder ) ;
194 FUNCTION: LLVMValueRef LLVMBuildRet
195 ( LLVMBuilderRef Builder, LLVMValueRef V ) ;
196 FUNCTION: LLVMValueRef LLVMBuildBr
197 ( LLVMBuilderRef Builder, LLVMBasicBlockRef Dest ) ;
198 FUNCTION: LLVMValueRef LLVMBuildCondBr
199 ( LLVMBuilderRef Builder, LLVMValueRef If, LLVMBasicBlockRef Then, LLVMBasicBlockRef Else ) ;
200 FUNCTION: LLVMValueRef LLVMBuildSwitch
201 ( LLVMBuilderRef Builder, LLVMValueRef V, LLVMBasicBlockRef Else, unsigned NumCases ) ;
202 FUNCTION: LLVMValueRef LLVMBuildInvoke
203 ( LLVMBuilderRef Builder, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs,
204 LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, char* Name ) ;
205 FUNCTION: LLVMValueRef LLVMBuildUnwind
206 ( LLVMBuilderRef Builder ) ;
207 FUNCTION: LLVMValueRef LLVMBuildUnreachable
208 ( LLVMBuilderRef Builder ) ;
210 ! IB Add Case to Switch
212 FUNCTION: void LLVMAddCase
213 ( LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest ) ;
217 FUNCTION: LLVMValueRef LLVMBuildAdd
218 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
219 FUNCTION: LLVMValueRef LLVMBuildSub
220 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
221 FUNCTION: LLVMValueRef LLVMBuildMul
222 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
223 FUNCTION: LLVMValueRef LLVMBuildUDiv
224 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
225 FUNCTION: LLVMValueRef LLVMBuildSDiv
226 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
227 FUNCTION: LLVMValueRef LLVMBuildFDiv
228 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
229 FUNCTION: LLVMValueRef LLVMBuildURem
230 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
231 FUNCTION: LLVMValueRef LLVMBuildSRem
232 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
233 FUNCTION: LLVMValueRef LLVMBuildFRem
234 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
235 FUNCTION: LLVMValueRef LLVMBuildShl
236 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
237 FUNCTION: LLVMValueRef LLVMBuildLShr
238 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
239 FUNCTION: LLVMValueRef LLVMBuildAShr
240 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
241 FUNCTION: LLVMValueRef LLVMBuildAnd
242 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
243 FUNCTION: LLVMValueRef LLVMBuildOr
244 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
245 FUNCTION: LLVMValueRef LLVMBuildXor
246 ( LLVMBuilderRef Builder, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
247 FUNCTION: LLVMValueRef LLVMBuildNeg
248 ( LLVMBuilderRef Builder, LLVMValueRef V, char* Name ) ;
249 FUNCTION: LLVMValueRef LLVMBuildNot
250 ( LLVMBuilderRef Builder, LLVMValueRef V, char* Name ) ;
254 FUNCTION: LLVMValueRef LLVMBuildMalloc
255 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, char* Name ) ;
256 FUNCTION: LLVMValueRef LLVMBuildArrayMalloc
257 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, LLVMValueRef Val, char* Name ) ;
258 FUNCTION: LLVMValueRef LLVMBuildAlloca
259 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, char* Name ) ;
260 FUNCTION: LLVMValueRef LLVMBuildArrayAlloca
261 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, LLVMValueRef Val, char* Name ) ;
262 FUNCTION: LLVMValueRef LLVMBuildFree
263 ( LLVMBuilderRef Builder, LLVMValueRef PointerVal ) ;
264 FUNCTION: LLVMValueRef LLVMBuildLoad
265 ( LLVMBuilderRef Builder, LLVMValueRef PointerVal, char* Name ) ;
266 FUNCTION: LLVMValueRef LLVMBuildStore
267 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMValueRef Ptr ) ;
268 FUNCTION: LLVMValueRef LLVMBuildGEP
269 ( LLVMBuilderRef B, LLVMValueRef Pointer, LLVMValueRef *Indices,
270 unsigned NumIndices, char* Name ) ;
274 FUNCTION: LLVMValueRef LLVMBuildTrunc
275 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
276 FUNCTION: LLVMValueRef LLVMBuildZExt
277 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
278 FUNCTION: LLVMValueRef LLVMBuildSExt
279 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
280 FUNCTION: LLVMValueRef LLVMBuildFPToUI
281 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
282 FUNCTION: LLVMValueRef LLVMBuildFPToSI
283 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
284 FUNCTION: LLVMValueRef LLVMBuildUIToFP
285 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
286 FUNCTION: LLVMValueRef LLVMBuildSIToFP
287 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
288 FUNCTION: LLVMValueRef LLVMBuildFPTrunc
289 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
290 FUNCTION: LLVMValueRef LLVMBuildFPExt
291 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
292 FUNCTION: LLVMValueRef LLVMBuildPtrToInt
293 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
294 FUNCTION: LLVMValueRef LLVMBuildIntToPtr
295 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
296 FUNCTION: LLVMValueRef LLVMBuildBitCast
297 ( LLVMBuilderRef Builder, LLVMValueRef Val, LLVMTypeRef DestTy, char* Name ) ;
301 FUNCTION: LLVMValueRef LLVMBuildICmp
302 ( LLVMBuilderRef Builder, LLVMIntPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
303 FUNCTION: LLVMValueRef LLVMBuildFCmp
304 ( LLVMBuilderRef Builder, LLVMRealPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, char* Name ) ;
306 ! IB Misc Instructions
308 FUNCTION: LLVMValueRef LLVMBuildPhi
309 ( LLVMBuilderRef Builder, LLVMTypeRef Ty, char* Name ) ;
310 FUNCTION: LLVMValueRef LLVMBuildCall
311 ( LLVMBuilderRef Builder, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, char* Name ) ;
312 FUNCTION: LLVMValueRef LLVMBuildSelect
313 ( LLVMBuilderRef Builder, LLVMValueRef If, LLVMValueRef Then, LLVMValueRef Else, char* Name ) ;
314 FUNCTION: LLVMValueRef LLVMBuildVAArg
315 ( LLVMBuilderRef Builder, LLVMValueRef List, LLVMTypeRef Ty, char* Name ) ;
316 FUNCTION: LLVMValueRef LLVMBuildExtractElement
317 ( LLVMBuilderRef Builder, LLVMValueRef VecVal, LLVMValueRef Index, char* Name ) ;
318 FUNCTION: LLVMValueRef LLVMBuildInsertElement
319 ( LLVMBuilderRef Builder, LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, char* Name ) ;
320 FUNCTION: LLVMValueRef LLVMBuildShuffleVector
321 ( LLVMBuilderRef Builder, LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, char* Name ) ;
322 FUNCTION: LLVMValueRef LLVMBuildExtractValue
323 ( LLVMBuilderRef Builder, LLVMValueRef AggVal, unsigned Index, char* Name ) ;
324 FUNCTION: LLVMValueRef LLVMBuildInsertValue
325 ( LLVMBuilderRef Builder, LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned Index, char* Name ) ;