Make the compiler work on macOS
Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
parent
1092c68317
commit
e4289d577a
5
odinfmt.json
Normal file
5
odinfmt.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/odinfmt.schema.json",
|
||||
"character_width": "120"
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
286
src/llvmc.odin
286
src/llvmc.odin
@ -1,6 +1,10 @@
|
||||
package main
|
||||
|
||||
foreign import llvmc "LLVM-C.lib"
|
||||
when ODIN_OS == .Windows {
|
||||
foreign import llvmc "llvm/win64/LLVM-C.lib"
|
||||
} else when ODIN_OS == .Linux || ODIN_OS == .Darwin {
|
||||
foreign import llvmc "system:LLVM-C"
|
||||
}
|
||||
|
||||
LLVMBool :: distinct int
|
||||
LLVMMemoryBufferRef :: distinct rawptr
|
||||
@ -23,150 +27,150 @@ LLVMJITEventListenerRef :: distinct rawptr
|
||||
LLVMBinaryRef :: distinct rawptr
|
||||
|
||||
LLVMTypeKind :: enum {
|
||||
LLVMVoidTypeKind,
|
||||
LLVMHalfTypeKind,
|
||||
LLVMFloatTypeKind,
|
||||
LLVMDoubleTypeKind,
|
||||
LLVMX86_FP80TypeKind,
|
||||
LLVMFP128TypeKind,
|
||||
LLVMPPC_FP128TypeKind,
|
||||
LLVMLabelTypeKind,
|
||||
LLVMIntegerTypeKind,
|
||||
LLVMFunctionTypeKind,
|
||||
LLVMStructTypeKind,
|
||||
LLVMArrayTypeKind,
|
||||
LLVMPointerTypeKind,
|
||||
LLVMVectorTypeKind,
|
||||
LLVMMetadataTypeKind,
|
||||
LLVMX86_MMXTypeKind,
|
||||
LLVMTokenTypeKind,
|
||||
LLVMScalableVectorTypeKind,
|
||||
LLVMBFloatTypeKind,
|
||||
LLVMX86_AMXTypeKind,
|
||||
LLVMTargetExtTypeKind,
|
||||
LLVMVoidTypeKind,
|
||||
LLVMHalfTypeKind,
|
||||
LLVMFloatTypeKind,
|
||||
LLVMDoubleTypeKind,
|
||||
LLVMX86_FP80TypeKind,
|
||||
LLVMFP128TypeKind,
|
||||
LLVMPPC_FP128TypeKind,
|
||||
LLVMLabelTypeKind,
|
||||
LLVMIntegerTypeKind,
|
||||
LLVMFunctionTypeKind,
|
||||
LLVMStructTypeKind,
|
||||
LLVMArrayTypeKind,
|
||||
LLVMPointerTypeKind,
|
||||
LLVMVectorTypeKind,
|
||||
LLVMMetadataTypeKind,
|
||||
LLVMX86_MMXTypeKind,
|
||||
LLVMTokenTypeKind,
|
||||
LLVMScalableVectorTypeKind,
|
||||
LLVMBFloatTypeKind,
|
||||
LLVMX86_AMXTypeKind,
|
||||
LLVMTargetExtTypeKind,
|
||||
}
|
||||
|
||||
LLVMIntPredicate :: enum {
|
||||
LLVMIntEQ = 32,
|
||||
LLVMIntNE,
|
||||
LLVMIntUGT,
|
||||
LLVMIntUGE,
|
||||
LLVMIntULT,
|
||||
LLVMIntULE,
|
||||
LLVMIntSGT,
|
||||
LLVMIntSGE,
|
||||
LLVMIntSLT,
|
||||
LLVMIntSLE,
|
||||
LLVMIntEQ = 32,
|
||||
LLVMIntNE,
|
||||
LLVMIntUGT,
|
||||
LLVMIntUGE,
|
||||
LLVMIntULT,
|
||||
LLVMIntULE,
|
||||
LLVMIntSGT,
|
||||
LLVMIntSGE,
|
||||
LLVMIntSLT,
|
||||
LLVMIntSLE,
|
||||
}
|
||||
|
||||
LLVMRealPredicate :: enum {
|
||||
LLVMRealPredicateFalse,
|
||||
LLVMRealOEQ,
|
||||
LLVMRealOGT,
|
||||
LLVMRealOGE,
|
||||
LLVMRealOLT,
|
||||
LLVMRealOLE,
|
||||
LLVMRealONE,
|
||||
LLVMRealORD,
|
||||
LLVMRealUNO,
|
||||
LLVMRealUEQ,
|
||||
LLVMRealUGT,
|
||||
LLVMRealUGE,
|
||||
LLVMRealULT,
|
||||
LLVMRealULE,
|
||||
LLVMRealUNE,
|
||||
LLVMRealPredicateTrue
|
||||
};
|
||||
|
||||
@(default_calling_convention = "std")
|
||||
foreign llvmc {
|
||||
LLVMContextCreate :: proc() -> LLVMContextRef ---
|
||||
LLVMModuleCreateWithName :: proc(name: cstring) -> LLVMModuleRef ---
|
||||
LLVMModuleCreateWithNameInContext :: proc(name: cstring, C: LLVMContextRef) -> LLVMModuleRef ---
|
||||
|
||||
LLVMCreateBuilderInContext :: proc(C: LLVMContextRef) -> LLVMBuilderRef ---
|
||||
LLVMPositionBuilderAtEnd :: proc(Builder: LLVMBuilderRef, Block: LLVMBasicBlockRef) ---
|
||||
|
||||
LLVMBuildPointerCast :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, DestTy: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildGlobalString :: proc(Builder: LLVMBuilderRef, Str: cstring, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildGlobalStringPtr :: proc(Builder: LLVMBuilderRef, Str: cstring, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildCall2 :: proc(Builder: LLVMBuilderRef, Type: LLVMTypeRef, Fn: LLVMValueRef, Args: [^]LLVMValueRef, NumArgs: uint, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildRetVoid :: proc(Builder: LLVMBuilderRef) -> LLVMValueRef ---
|
||||
LLVMBuildRet :: proc(Builder: LLVMBuilderRef, V: LLVMValueRef) -> LLVMValueRef ---
|
||||
|
||||
LLVMInt1TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt8TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt16TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt32TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt64TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMIntTypeInContext :: proc(C: LLVMContextRef, n: uint) -> LLVMTypeRef ---
|
||||
|
||||
LLVMDoubleTypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMFloatTypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
|
||||
LLVMVoidTypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
|
||||
LLVMGetTypeKind :: proc(Ty: LLVMTypeRef) -> LLVMTypeKind ---
|
||||
|
||||
LLVMArrayType2 :: proc(ElementType: LLVMTypeRef, ElementCount: u64) -> LLVMTypeRef ---
|
||||
LLVMPointerType :: proc(ElementType: LLVMTypeRef, AddressSpace: uint) -> LLVMTypeRef ---
|
||||
|
||||
LLVMConstInt :: proc(IntTy: LLVMTypeRef, N: u64, SignExtend: LLVMBool) -> LLVMValueRef ---
|
||||
LLVMConstReal :: proc(RealTy: LLVMTypeRef, N: f64) -> LLVMValueRef ---
|
||||
|
||||
LLVMFunctionType :: proc(ReturnType: LLVMTypeRef, ParamTypes: [^]LLVMTypeRef, ParamCount: uint, IsVarArg: LLVMBool) -> LLVMTypeRef ---
|
||||
LLVMAddFunction :: proc(M: LLVMModuleRef, Name: cstring, FunctionType: LLVMTypeRef) -> LLVMValueRef ---
|
||||
|
||||
LLVMAppendBasicBlockInContext :: proc(C: LLVMContextRef, Fn: LLVMValueRef, Name: cstring) -> LLVMBasicBlockRef ---
|
||||
LLVMCreateBasicBlockInContext :: proc(C: LLVMContextRef, Name: cstring) -> LLVMBasicBlockRef ---
|
||||
LLVMGetLastBasicBlock :: proc(Fn: LLVMValueRef) -> LLVMBasicBlockRef ---
|
||||
LLVMGetInsertBlock :: proc(Builder: LLVMBuilderRef) -> LLVMBasicBlockRef ---
|
||||
LLVMInsertExistingBasicBlockAfterInsertBlock :: proc(Builder: LLVMBuilderRef, Block: LLVMBasicBlockRef) ---
|
||||
LLVMAppendExistingBasicBlock :: proc(Fn: LLVMValueRef, Block: LLVMBasicBlockRef) ---
|
||||
|
||||
LLVMPrintModuleToFile :: proc(M: LLVMModuleRef, Filename: cstring, ErrorMessage: ^cstring) -> LLVMBool ---
|
||||
|
||||
LLVMGetValueName2 :: proc(V: LLVMValueRef, Length: ^u64) -> cstring ---
|
||||
|
||||
LLVMBuildFAdd :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildAdd :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFSub :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildSub :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFMul :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildMul :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFDiv :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildUDiv :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildSDiv :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFRem :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildURem :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildSRem :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildAlloca :: proc(Builder: LLVMBuilderRef, Ty: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildStore :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, Ptr: LLVMValueRef) -> LLVMValueRef ---
|
||||
LLVMBuildLoad2 :: proc(Builder: LLVMBuilderRef, Ty: LLVMTypeRef, PointerVal: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildBr :: proc(Builder: LLVMBuilderRef, Dest: LLVMBasicBlockRef) -> LLVMValueRef ---
|
||||
LLVMBuildCondBr :: proc(Builder: LLVMBuilderRef, If: LLVMValueRef, Then: LLVMBasicBlockRef, Else: LLVMBasicBlockRef) -> LLVMValueRef ---
|
||||
LLVMBuildICmp :: proc(Builder: LLVMBuilderRef, Predicate: LLVMIntPredicate, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFCmp :: proc(Builder: LLVMBuilderRef, Predicate: LLVMRealPredicate, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildAnd :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildOr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildXor :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildNot :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildShl :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildLShr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildAShr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildShr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildPhi :: proc(Builder: LLVMBuilderRef, Ty: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMTypeOf :: proc(Val: LLVMValueRef) -> LLVMTypeRef ---
|
||||
|
||||
LLVMAddIncoming :: proc(PhiNode: LLVMValueRef, IncomingValues: [^]LLVMValueRef, IncomingBlocks: [^]LLVMBasicBlockRef, Count: uint) ---
|
||||
|
||||
LLVMDisposeBuilder :: proc(Builder: LLVMBuilderRef) ---
|
||||
LLVMDisposeModule :: proc(M: LLVMModuleRef) ---
|
||||
LLVMContextDispose :: proc(C: LLVMContextRef) ---
|
||||
LLVMRealPredicateFalse,
|
||||
LLVMRealOEQ,
|
||||
LLVMRealOGT,
|
||||
LLVMRealOGE,
|
||||
LLVMRealOLT,
|
||||
LLVMRealOLE,
|
||||
LLVMRealONE,
|
||||
LLVMRealORD,
|
||||
LLVMRealUNO,
|
||||
LLVMRealUEQ,
|
||||
LLVMRealUGT,
|
||||
LLVMRealUGE,
|
||||
LLVMRealULT,
|
||||
LLVMRealULE,
|
||||
LLVMRealUNE,
|
||||
LLVMRealPredicateTrue,
|
||||
}
|
||||
|
||||
@(default_calling_convention = "c")
|
||||
foreign llvmc {
|
||||
LLVMContextCreate :: proc() -> LLVMContextRef ---
|
||||
LLVMModuleCreateWithName :: proc(name: cstring) -> LLVMModuleRef ---
|
||||
LLVMModuleCreateWithNameInContext :: proc(name: cstring, C: LLVMContextRef) -> LLVMModuleRef ---
|
||||
|
||||
LLVMCreateBuilderInContext :: proc(C: LLVMContextRef) -> LLVMBuilderRef ---
|
||||
LLVMPositionBuilderAtEnd :: proc(Builder: LLVMBuilderRef, Block: LLVMBasicBlockRef) ---
|
||||
|
||||
LLVMBuildPointerCast :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, DestTy: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildGlobalString :: proc(Builder: LLVMBuilderRef, Str: cstring, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildGlobalStringPtr :: proc(Builder: LLVMBuilderRef, Str: cstring, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildCall2 :: proc(Builder: LLVMBuilderRef, Type: LLVMTypeRef, Fn: LLVMValueRef, Args: [^]LLVMValueRef, NumArgs: uint, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildRetVoid :: proc(Builder: LLVMBuilderRef) -> LLVMValueRef ---
|
||||
LLVMBuildRet :: proc(Builder: LLVMBuilderRef, V: LLVMValueRef) -> LLVMValueRef ---
|
||||
|
||||
LLVMInt1TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt8TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt16TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt32TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMInt64TypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMIntTypeInContext :: proc(C: LLVMContextRef, n: uint) -> LLVMTypeRef ---
|
||||
|
||||
LLVMDoubleTypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
LLVMFloatTypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
|
||||
LLVMVoidTypeInContext :: proc(C: LLVMContextRef) -> LLVMTypeRef ---
|
||||
|
||||
LLVMGetTypeKind :: proc(Ty: LLVMTypeRef) -> LLVMTypeKind ---
|
||||
|
||||
LLVMArrayType2 :: proc(ElementType: LLVMTypeRef, ElementCount: u64) -> LLVMTypeRef ---
|
||||
LLVMPointerType :: proc(ElementType: LLVMTypeRef, AddressSpace: uint) -> LLVMTypeRef ---
|
||||
|
||||
LLVMConstInt :: proc(IntTy: LLVMTypeRef, N: u64, SignExtend: LLVMBool) -> LLVMValueRef ---
|
||||
LLVMConstReal :: proc(RealTy: LLVMTypeRef, N: f64) -> LLVMValueRef ---
|
||||
|
||||
LLVMFunctionType :: proc(ReturnType: LLVMTypeRef, ParamTypes: [^]LLVMTypeRef, ParamCount: uint, IsVarArg: LLVMBool) -> LLVMTypeRef ---
|
||||
LLVMAddFunction :: proc(M: LLVMModuleRef, Name: cstring, FunctionType: LLVMTypeRef) -> LLVMValueRef ---
|
||||
|
||||
LLVMAppendBasicBlockInContext :: proc(C: LLVMContextRef, Fn: LLVMValueRef, Name: cstring) -> LLVMBasicBlockRef ---
|
||||
LLVMCreateBasicBlockInContext :: proc(C: LLVMContextRef, Name: cstring) -> LLVMBasicBlockRef ---
|
||||
LLVMGetLastBasicBlock :: proc(Fn: LLVMValueRef) -> LLVMBasicBlockRef ---
|
||||
LLVMGetInsertBlock :: proc(Builder: LLVMBuilderRef) -> LLVMBasicBlockRef ---
|
||||
LLVMInsertExistingBasicBlockAfterInsertBlock :: proc(Builder: LLVMBuilderRef, Block: LLVMBasicBlockRef) ---
|
||||
LLVMAppendExistingBasicBlock :: proc(Fn: LLVMValueRef, Block: LLVMBasicBlockRef) ---
|
||||
|
||||
LLVMPrintModuleToFile :: proc(M: LLVMModuleRef, Filename: cstring, ErrorMessage: ^cstring) -> LLVMBool ---
|
||||
|
||||
LLVMGetValueName2 :: proc(V: LLVMValueRef, Length: ^u64) -> cstring ---
|
||||
|
||||
LLVMBuildFAdd :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildAdd :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFSub :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildSub :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFMul :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildMul :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFDiv :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildUDiv :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildSDiv :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFRem :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildURem :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildSRem :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildAlloca :: proc(Builder: LLVMBuilderRef, Ty: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildStore :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, Ptr: LLVMValueRef) -> LLVMValueRef ---
|
||||
LLVMBuildLoad2 :: proc(Builder: LLVMBuilderRef, Ty: LLVMTypeRef, PointerVal: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildBr :: proc(Builder: LLVMBuilderRef, Dest: LLVMBasicBlockRef) -> LLVMValueRef ---
|
||||
LLVMBuildCondBr :: proc(Builder: LLVMBuilderRef, If: LLVMValueRef, Then: LLVMBasicBlockRef, Else: LLVMBasicBlockRef) -> LLVMValueRef ---
|
||||
LLVMBuildICmp :: proc(Builder: LLVMBuilderRef, Predicate: LLVMIntPredicate, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildFCmp :: proc(Builder: LLVMBuilderRef, Predicate: LLVMRealPredicate, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildAnd :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildOr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildXor :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildNot :: proc(Builder: LLVMBuilderRef, Val: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildShl :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildLShr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildAShr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
LLVMBuildShr :: proc(Builder: LLVMBuilderRef, LHS: LLVMValueRef, RHS: LLVMValueRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMBuildPhi :: proc(Builder: LLVMBuilderRef, Ty: LLVMTypeRef, Name: cstring) -> LLVMValueRef ---
|
||||
|
||||
LLVMTypeOf :: proc(Val: LLVMValueRef) -> LLVMTypeRef ---
|
||||
|
||||
LLVMAddIncoming :: proc(PhiNode: LLVMValueRef, IncomingValues: [^]LLVMValueRef, IncomingBlocks: [^]LLVMBasicBlockRef, Count: uint) ---
|
||||
|
||||
LLVMDisposeBuilder :: proc(Builder: LLVMBuilderRef) ---
|
||||
LLVMDisposeModule :: proc(M: LLVMModuleRef) ---
|
||||
LLVMContextDispose :: proc(C: LLVMContextRef) ---
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
- [x] Create a TODO list
|
||||
- [ ] Custom Functions (not external)
|
||||
- [ ] Add support for function definitions in the type checker
|
||||
- [x] Add support for function definitions in the type checker
|
||||
- [ ] Add support for function definitions in the LLVM emitter
|
||||
- [ ] Structures
|
||||
- [ ] Add support for packed in the parser
|
||||
|
Loading…
x
Reference in New Issue
Block a user