]> gitweb.factorcode.org Git - factor.git/blob - extra/llvm/core/core.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / extra / llvm / core / core.factor
1 USING: alien.libraries alien.syntax ;
2
3 IN: llvm.core
4
5 <<
6
7 "LLVMSystem" "/usr/local/lib/libLLVMSystem.dylib" "cdecl" add-library
8
9 "LLVMSupport" "/usr/local/lib/libLLVMSupport.dylib" "cdecl" add-library
10
11 "LLVMCore" "/usr/local/lib/libLLVMCore.dylib" "cdecl" add-library
12
13 >>
14
15 ! llvm-c/Core.h
16
17 LIBRARY: LLVMCore
18
19 TYPEDEF: uint unsigned
20 TYPEDEF: unsigned enum
21
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;
34
35 C-ENUM:
36   LLVMVoidTypeKind
37   LLVMFloatTypeKind
38   LLVMDoubleTypeKind
39   LLVMX86_FP80TypeKind
40   LLVMFP128TypeKind
41   LLVMPPC_FP128TypeKind
42   LLVMLabelTypeKind
43   LLVMIntegerTypeKind
44   LLVMFunctionTypeKind
45   LLVMStructTypeKind
46   LLVMArrayTypeKind
47   LLVMPointerTypeKind
48   LLVMOpaqueTypeKind
49   LLVMVectorTypeKind ;
50 TYPEDEF: enum LLVMTypeKind
51
52 C-ENUM:
53   LLVMExternalLinkage
54   LLVMLinkOnceLinkage
55   LLVMWeakLinkage
56   LLVMAppendingLinkage
57   LLVMInternalLinkage
58   LLVMDLLImportLinkage
59   LLVMDLLExportLinkage
60   LLVMExternalWeakLinkage
61   LLVMGhostLinkage ;
62 TYPEDEF: enum LLVMLinkage
63
64 C-ENUM:
65   LLVMDefaultVisibility
66   LLVMHiddenVisibility
67   LLVMProtectedVisibility ;
68 TYPEDEF: enum LLVMVisibility
69
70 CONSTANT: LLVMCCallConv             0
71 CONSTANT: LLVMFastCallConv          8
72 CONSTANT: LLVMColdCallConv          9
73 CONSTANT: LLVMX86StdcallCallConv    64
74 CONSTANT: LLVMX86FastcallCallConv   65
75 TYPEDEF: enum LLVMCallConv
76
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
88
89 C-ENUM:
90   LLVMRealPredicateFalse
91   LLVMRealOEQ
92   LLVMRealOGT
93   LLVMRealOGE
94   LLVMRealOLT
95   LLVMRealOLE
96   LLVMRealONE
97   LLVMRealORD
98   LLVMRealUNO
99   LLVMRealUEQ
100   LLVMRealUGT
101   LLVMRealUGE
102   LLVMRealULT
103   LLVMRealULE
104   LLVMRealUNE
105   LLVMRealPredicateTrue ;
106 TYPEDEF: enum LLVMRealPredicate
107
108 ! Opaque Types
109
110 TYPEDEF: void* LLVMModuleRef
111
112 TYPEDEF: void* LLVMPassManagerRef
113
114 TYPEDEF: void* LLVMModuleProviderRef
115
116 TYPEDEF: void* LLVMTypeRef
117
118 TYPEDEF: void* LLVMValueRef
119
120 TYPEDEF: void* LLVMBasicBlockRef
121
122 TYPEDEF: void* LLVMBuilderRef
123
124 ! Functions
125
126 FUNCTION: void LLVMDisposeMessage ( char *Message ) ;
127
128 FUNCTION: LLVMModuleRef LLVMModuleCreateWithName ( char* ModuleID ) ;
129
130 FUNCTION: int LLVMAddTypeName ( LLVMModuleRef M, char* Name, LLVMTypeRef Ty ) ;
131
132 FUNCTION: void LLVMDisposeModule ( LLVMModuleRef M ) ;
133
134 FUNCTION: void LLVMDumpModule ( LLVMModuleRef M ) ;
135
136 FUNCTION: LLVMModuleProviderRef
137 LLVMCreateModuleProviderForExistingModule ( LLVMModuleRef M ) ;
138
139 FUNCTION: void LLVMDisposeModuleProvider ( LLVMModuleProviderRef MP ) ;
140
141 FUNCTION: LLVMTypeRef LLVMIntType ( unsigned NumBits ) ;
142
143 FUNCTION: LLVMTypeRef
144 LLVMFunctionType ( LLVMTypeRef ReturnType,
145                    LLVMTypeRef* ParamTypes,
146                    unsigned ParamCount,
147                    int IsVarArg ) ;
148                
149 FUNCTION: unsigned LLVMCountParams ( LLVMValueRef Fn ) ;
150
151 FUNCTION: void LLVMGetParams ( LLVMValueRef Fn, LLVMValueRef* Params ) ;
152
153 FUNCTION: LLVMValueRef
154 LLVMAddFunction ( LLVMModuleRef M, char* Name, LLVMTypeRef FunctionTy ) ;
155
156 FUNCTION: unsigned LLVMGetFunctionCallConv ( LLVMValueRef Fn ) ;
157
158 FUNCTION: void LLVMSetFunctionCallConv ( LLVMValueRef Fn, unsigned CC ) ;
159
160 FUNCTION: LLVMBasicBlockRef
161 LLVMAppendBasicBlock ( LLVMValueRef Fn, char* Name ) ;
162
163 FUNCTION: LLVMValueRef LLVMGetBasicBlockParent ( LLVMBasicBlockRef BB ) ;
164
165 ! Values
166
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 ) ;
171
172 ! Instruction Builders
173
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 ) ;
189
190 ! IB Terminators
191
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 ) ;
209
210 ! IB Add Case to Switch
211
212 FUNCTION: void LLVMAddCase
213 ( LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest ) ;
214
215 ! IB Arithmetic
216
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 ) ;
251
252 ! IB Memory
253
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 ) ;
271
272 ! IB Casts
273
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 ) ;
298
299 ! IB Comparisons
300
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 ) ;
305
306 ! IB Misc Instructions
307
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 ) ;