mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 19:47:38 +00:00
117 lines
3.9 KiB
Rust
117 lines
3.9 KiB
Rust
![]() |
import std._str.rustrt.sbuf;
|
||
|
import std._vec.rustrt.vbuf;
|
||
|
|
||
|
type Bool = int;
|
||
|
|
||
|
native mod llvm = "libLLVM-2.7.so" {
|
||
|
|
||
|
type ModuleRef;
|
||
|
type ContextRef;
|
||
|
type TypeRef;
|
||
|
type TypeHandleRef;
|
||
|
type ValueRef;
|
||
|
type BasicBlockRef;
|
||
|
type BuilderRef;
|
||
|
type ModuleProviderRef;
|
||
|
type MemoryBufferRef;
|
||
|
type PassManagerRef;
|
||
|
type UseRef;
|
||
|
|
||
|
fn ModuleCreateWithName(sbuf ModuleID) -> ModuleRef;
|
||
|
fn DisposeModule(ModuleRef M);
|
||
|
|
||
|
fn GetDataLayout(ModuleRef M) -> sbuf;
|
||
|
fn SetDataLayout(ModuleRef M, sbuf Triple);
|
||
|
|
||
|
fn GetTarget(ModuleRef M) -> sbuf;
|
||
|
fn SetTarget(ModuleRef M, sbuf Triple);
|
||
|
|
||
|
fn AddTypeName(ModuleRef M, sbuf Name, TypeRef Ty) -> Bool;
|
||
|
fn DeleteTypeName(ModuleRef M, sbuf Name);
|
||
|
fn GetTypeByName(ModuleRef M, sbuf Name) -> TypeRef;
|
||
|
|
||
|
fn DumpModule(ModuleRef M);
|
||
|
|
||
|
fn GetTypeContext(TypeRef Ty) -> ContextRef;
|
||
|
|
||
|
fn Int1TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn Int8TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn Int16TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn Int32TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn Int64TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn IntTypeInContext(ContextRef C, uint NumBits) -> TypeRef;
|
||
|
|
||
|
fn Int1Type() -> TypeRef;
|
||
|
fn Int8Type() -> TypeRef;
|
||
|
fn Int16Type() -> TypeRef;
|
||
|
fn Int32Type() -> TypeRef;
|
||
|
fn Int64Type() -> TypeRef;
|
||
|
fn IntType(uint NumBits) -> TypeRef;
|
||
|
fn GetIntTypeWidth(TypeRef IntegerTy) -> uint;
|
||
|
|
||
|
fn FloatTypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn DoubleTypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn X86FP80TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn FP128TypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn PPCFP128TypeInContext(ContextRef C) -> TypeRef;
|
||
|
|
||
|
fn FloatType() -> TypeRef;
|
||
|
fn DoubleType() -> TypeRef;
|
||
|
fn X86FP80Type() -> TypeRef;
|
||
|
fn FP128Type() -> TypeRef;
|
||
|
fn PPCFP128Type() -> TypeRef;
|
||
|
|
||
|
fn FunctionType(TypeRef ReturnType, vbuf ParamTypes,
|
||
|
uint ParamCount, Bool IsVarArg) -> TypeRef;
|
||
|
fn IsFunctionVarArg(TypeRef FunctionTy) -> Bool;
|
||
|
fn GetReturnType(TypeRef FunctionTy) -> TypeRef;
|
||
|
fn CountParamTypes(TypeRef FunctionTy) -> uint;
|
||
|
fn GetParamTypes(TypeRef FunctionTy, vbuf Dest);
|
||
|
|
||
|
fn StructTypeInContext(ContextRef C, vbuf ElementTypes,
|
||
|
uint ElementCount, Bool Packed) -> TypeRef;
|
||
|
fn StructType(vbuf ElementTypes, uint ElementCount,
|
||
|
Bool Packed) -> TypeRef;
|
||
|
fn CountStructElementTypes(TypeRef StructTy) -> uint;
|
||
|
fn GetStructElementTypes(TypeRef StructTy, vbuf Dest);
|
||
|
fn IsPackedStruct(TypeRef StructTy) -> Bool;
|
||
|
|
||
|
fn UnionTypeInContext(ContextRef C, vbuf ElementTypes,
|
||
|
uint ElementCount) -> TypeRef;
|
||
|
fn UnionType(vbuf ElementTypes, uint ElementCount) -> TypeRef;
|
||
|
fn CountUnionElementTypes(TypeRef UnionTy) -> uint;
|
||
|
fn GetUnionElementTypes(TypeRef UnionTy, vbuf Dest);
|
||
|
|
||
|
fn ArrayType(TypeRef ElementType, uint ElementCount) -> TypeRef;
|
||
|
fn PointerType(TypeRef ElementType, uint AddressSpace) -> TypeRef;
|
||
|
fn VectorType(TypeRef ElementType, uint ElementCount) -> TypeRef;
|
||
|
|
||
|
fn GetElementType(TypeRef Ty) -> TypeRef;
|
||
|
fn GetArrayLength(TypeRef ArrayTy) -> uint;
|
||
|
fn GetPointerAddressSpace(TypeRef PointerTy) -> uint;
|
||
|
fn GetVectorSize(TypeRef VectorTy) -> uint;
|
||
|
|
||
|
fn VoidTypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn LabelTypeInContext(ContextRef C) -> TypeRef;
|
||
|
fn OpaqueTypeInContext(ContextRef C) -> TypeRef;
|
||
|
|
||
|
fn VoidType() -> TypeRef;
|
||
|
fn LabelType() -> TypeRef;
|
||
|
fn OpaqueType() -> TypeRef;
|
||
|
|
||
|
fn CreateTypeHandle(TypeRef PotentiallyAbstractTy) -> TypeHandleRef;
|
||
|
fn RefineType(TypeRef AbstractTy, TypeRef ConcreteTy);
|
||
|
fn ResolveTypeHandle(TypeHandleRef TypeHandle) -> TypeRef;
|
||
|
fn DisposeTypeHandle(TypeHandleRef TypeHandle);
|
||
|
|
||
|
fn TypeOf(ValueRef Val) -> TypeRef;
|
||
|
fn GetValueName(ValueRef Val) -> sbuf;
|
||
|
fn SetValueName(ValueRef Val, sbuf Name);
|
||
|
fn DumpValue(ValueRef Val);
|
||
|
fn ReplaceAllUsesWith(ValueRef OldVal, ValueRef NewVal);
|
||
|
fn HasMetadata(ValueRef Val) -> int;
|
||
|
fn GetMetadata(ValueRef Val, uint KindID) -> ValueRef;
|
||
|
fn SetMetadata(ValueRef Val, uint KindID, ValueRef Node);
|
||
|
|
||
|
|
||
|
}
|