202 lines
7.4 KiB
Factor
202 lines
7.4 KiB
Factor
! Copyright (C) 2009 Matthew Willis, 2017 Björn Lindqvist
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: alien alien.c-types alien.libraries alien.syntax combinators
|
|
kernel ldcache system ;
|
|
IN: llvm.ffi
|
|
|
|
<< "llvm" {
|
|
{ [ os linux? ] [ "LLVM-3.9" find-so [ cdecl add-library ] [ drop ] if* ] }
|
|
[ drop ]
|
|
} cond
|
|
>>
|
|
|
|
LIBRARY: llvm
|
|
|
|
CONSTANT: LLVMAbortProcessAction 0
|
|
CONSTANT: LLVMPrintMessageAction 1
|
|
CONSTANT: LLVMReturnStatusAction 2
|
|
|
|
TYPEDEF: uint unsigned
|
|
TYPEDEF: unsigned enum
|
|
TYPEDEF: int LLVMBool
|
|
|
|
! Reference types
|
|
TYPEDEF: void* LLVMExecutionEngineRef
|
|
TYPEDEF: void* LLVMModuleRef
|
|
TYPEDEF: void* LLVMPassManagerRef
|
|
TYPEDEF: void* LLVMModuleProviderRef
|
|
TYPEDEF: void* LLVMTypeRef
|
|
TYPEDEF: void* LLVMValueRef
|
|
TYPEDEF: void* LLVMBasicBlockRef
|
|
TYPEDEF: void* LLVMBuilderRef
|
|
TYPEDEF: void* LLVMMemoryBufferRef
|
|
TYPEDEF: void* LLVMTargetRef
|
|
TYPEDEF: void* LLVMPassRegistryRef
|
|
|
|
! Type types
|
|
ENUM: LLVMTypeKind
|
|
LLVMVoidTypeKind
|
|
LLVMHalfTypeKind
|
|
LLVMFloatTypeKind
|
|
LLVMDoubleTypeKind
|
|
LLVMX86_FP80TypeKind
|
|
LLVMFP128TypeKind
|
|
LLVMPPC_FP128TypeKind
|
|
LLVMLabelTypeKind
|
|
LLVMIntegerTypeKind
|
|
LLVMFunctionTypeKind
|
|
LLVMStructTypeKind
|
|
LLVMArrayTypeKind
|
|
LLVMPointerTypeKind
|
|
LLVMVectorTypeKind
|
|
LLVMMetadataTypeKind
|
|
LLVMX86_MMXTypeKind
|
|
LLVMTokenTypeKind ;
|
|
|
|
! Modules
|
|
FUNCTION: LLVMModuleRef LLVMModuleCreateWithName ( c-string ModuleID )
|
|
FUNCTION: void LLVMDisposeModule ( LLVMModuleRef M )
|
|
FUNCTION: void LLVMDumpModule ( LLVMModuleRef M )
|
|
FUNCTION: LLVMBool LLVMVerifyModule ( LLVMModuleRef M, int Action, char **OutMessage )
|
|
FUNCTION: c-string LLVMGetTarget ( LLVMModuleRef M )
|
|
|
|
! Types
|
|
|
|
! ! Basic types
|
|
FUNCTION: LLVMTypeRef LLVMFloatType ( )
|
|
FUNCTION: LLVMTypeRef LLVMDoubleType ( )
|
|
|
|
FUNCTION: LLVMTypeRef LLVMX86FP80Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMFP128Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMPPCFP128Type ( )
|
|
|
|
FUNCTION: LLVMTypeRef LLVMVoidType ( )
|
|
FUNCTION: LLVMTypeRef LLVMLabelType ( )
|
|
|
|
! ! Integer type
|
|
FUNCTION: LLVMTypeRef LLVMInt1Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMInt8Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMInt16Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMInt32Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMInt64Type ( )
|
|
FUNCTION: LLVMTypeRef LLVMIntType ( unsigned NumBits )
|
|
FUNCTION: unsigned LLVMGetIntTypeWidth ( LLVMTypeRef IntegerTy )
|
|
|
|
! ! Array type
|
|
FUNCTION: LLVMTypeRef LLVMArrayType ( LLVMTypeRef ElementType, unsigned ElementCount )
|
|
FUNCTION: unsigned LLVMGetArrayLength ( LLVMTypeRef ArrayTy )
|
|
|
|
! ! Pointer type
|
|
FUNCTION: LLVMTypeRef LLVMPointerType ( LLVMTypeRef ElementType, unsigned AddressSpace )
|
|
|
|
! ! Vector type
|
|
FUNCTION: LLVMTypeRef LLVMVectorType ( LLVMTypeRef ElementType, unsigned ElementCount )
|
|
FUNCTION: unsigned LLVMGetVectorSize ( LLVMTypeRef VectorTy )
|
|
|
|
! ! Function type
|
|
FUNCTION: LLVMTypeRef LLVMFunctionType ( LLVMTypeRef ReturnType,
|
|
LLVMTypeRef* ParamTypes,
|
|
unsigned ParamCount, int IsVarArg )
|
|
FUNCTION: LLVMTypeRef LLVMGetReturnType ( LLVMTypeRef FunctionTy )
|
|
FUNCTION: int LLVMIsFunctionVarArg ( LLVMTypeRef FunctionTy )
|
|
FUNCTION: unsigned LLVMCountParamTypes ( LLVMTypeRef FunctionTy )
|
|
FUNCTION: void LLVMGetParamTypes ( LLVMTypeRef FunctionTy, LLVMTypeRef* Dest )
|
|
|
|
! ! Struct type
|
|
FUNCTION: LLVMTypeRef LLVMStructType ( LLVMTypeRef* ElementTypes,
|
|
unsigned ElementCount, int Packed )
|
|
FUNCTION: int LLVMIsPackedStruct ( LLVMTypeRef StructTy )
|
|
FUNCTION: unsigned LLVMCountStructElementTypes ( LLVMTypeRef StructTy )
|
|
FUNCTION: void LLVMGetStructElementTypes ( LLVMTypeRef StructTy, LLVMTypeRef* Dest )
|
|
|
|
! ! Type util
|
|
FUNCTION: LLVMTypeKind LLVMGetTypeKind ( LLVMTypeRef Ty )
|
|
FUNCTION: LLVMTypeRef LLVMGetElementType ( LLVMTypeRef Ty )
|
|
|
|
! Values
|
|
FUNCTION: LLVMValueRef LLVMAddFunction ( LLVMModuleRef M,
|
|
c-string Name,
|
|
LLVMTypeRef FunctionTy )
|
|
FUNCTION: LLVMValueRef LLVMGetParam ( LLVMValueRef Fn,
|
|
unsigned index )
|
|
FUNCTION: c-string LLVMGetValueName ( LLVMValueRef Val )
|
|
FUNCTION: unsigned LLVMCountParams ( LLVMValueRef Fn )
|
|
FUNCTION: LLVMTypeRef LLVMTypeOf ( LLVMValueRef Val )
|
|
FUNCTION: void LLVMDumpValue ( LLVMValueRef Val )
|
|
|
|
! Basic blocks
|
|
FUNCTION: LLVMBasicBlockRef LLVMAppendBasicBlock ( LLVMValueRef Fn,
|
|
c-string Name )
|
|
|
|
! Builders
|
|
FUNCTION: LLVMBuilderRef LLVMCreateBuilder ( )
|
|
FUNCTION: void LLVMDisposeBuilder ( LLVMBuilderRef Builder )
|
|
FUNCTION: void LLVMPositionBuilderBefore ( LLVMBuilderRef Builder,
|
|
LLVMValueRef Instr )
|
|
FUNCTION: void LLVMPositionBuilderAtEnd ( LLVMBuilderRef Builder,
|
|
LLVMBasicBlockRef Block )
|
|
|
|
FUNCTION: LLVMValueRef LLVMBuildAdd ( LLVMBuilderRef Builder,
|
|
LLVMValueRef LHS,
|
|
LLVMValueRef RHS,
|
|
c-string Name )
|
|
FUNCTION: LLVMValueRef LLVMBuildSub ( LLVMBuilderRef Builder,
|
|
LLVMValueRef LHS,
|
|
LLVMValueRef RHS,
|
|
c-string Name )
|
|
FUNCTION: LLVMValueRef LLVMBuildMul ( LLVMBuilderRef Builder,
|
|
LLVMValueRef LHS,
|
|
LLVMValueRef RHS,
|
|
c-string Name )
|
|
FUNCTION: LLVMValueRef LLVMBuildRet ( LLVMBuilderRef Builder,
|
|
LLVMValueRef V )
|
|
|
|
! Execution Engines
|
|
FUNCTION: LLVMBool LLVMCreateExecutionEngineForModule (
|
|
LLVMExecutionEngineRef* OutEE,
|
|
LLVMModuleRef M,
|
|
char **OutMessage )
|
|
FUNCTION: void LLVMDisposeExecutionEngine ( LLVMExecutionEngineRef E )
|
|
FUNCTION: uint64_t LLVMGetGlobalValueAddress ( LLVMExecutionEngineRef E, c-string name )
|
|
FUNCTION: LLVMBool LLVMFindFunction ( LLVMExecutionEngineRef E,
|
|
c-string name,
|
|
LLVMValueRef OutFn )
|
|
FUNCTION: void* LLVMGetPointerToGlobal ( LLVMExecutionEngineRef EE,
|
|
LLVMValueRef Global )
|
|
|
|
! Memory buffers
|
|
FUNCTION: LLVMBool LLVMCreateMemoryBufferWithContentsOfFile (
|
|
c-string Path,
|
|
LLVMMemoryBufferRef* OutMemBuf,
|
|
c-string* OutMessage )
|
|
FUNCTION: void LLVMDisposeMemoryBuffer ( LLVMMemoryBufferRef MemBuf )
|
|
FUNCTION: size_t LLVMGetBufferSize ( LLVMMemoryBufferRef MemBuf )
|
|
! Deprecated and should be replaced with LLVMParseBitcode2.
|
|
FUNCTION: int LLVMParseBitcode ( LLVMMemoryBufferRef MemBuf,
|
|
LLVMModuleRef* OutModule,
|
|
c-string* OutMessage )
|
|
|
|
! Module providers
|
|
FUNCTION: LLVMModuleProviderRef LLVMCreateModuleProviderForExistingModule ( LLVMModuleRef M )
|
|
FUNCTION: void LLVMDisposeModuleProvider ( LLVMModuleProviderRef MP )
|
|
|
|
! Targets
|
|
FUNCTION: LLVMTargetRef LLVMGetFirstTarget ( )
|
|
FUNCTION: c-string LLVMGetTargetName ( LLVMTargetRef T )
|
|
|
|
! Messages
|
|
FUNCTION: void LLVMDisposeMessage ( char *Message )
|
|
|
|
! Pass Registry
|
|
FUNCTION: LLVMPassRegistryRef LLVMGetGlobalPassRegistry ( )
|
|
|
|
! Initialization
|
|
FUNCTION: void LLVMInitializeCore ( LLVMPassRegistryRef PR )
|
|
FUNCTION: void LLVMLinkInMCJIT ( )
|
|
FUNCTION: void LLVMInitializeX86AsmPrinter ( )
|
|
FUNCTION: void LLVMInitializeX86TargetInfo ( )
|
|
FUNCTION: void LLVMInitializeX86Target ( )
|
|
FUNCTION: void LLVMInitializeX86TargetMC ( )
|
|
|
|
! Removed symbols: LLVMCreateJITCompiler, LLVMCreateTypeHandle, LLVMOpaqueType
|