Mercurial > projects > ldc
diff gen/tollvm.h @ 1:c53b6e3fe49a trunk
[svn r5] Initial commit. Most things are very rough.
author | lindquist |
---|---|
date | Sat, 01 Sep 2007 21:43:27 +0200 |
parents | |
children | e116aa1488e6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gen/tollvm.h Sat Sep 01 21:43:27 2007 +0200 @@ -0,0 +1,44 @@ +// D -> LLVM helpers + +struct StructInitializer; + +const llvm::Type* LLVM_DtoType(Type* t); + +llvm::Type* LLVM_DtoStructType(Type* t); +llvm::Value* LLVM_DtoStructZeroInit(TypeStruct* t, llvm::Value* v); +llvm::Value* LLVM_DtoStructCopy(TypeStruct* t, llvm::Value* dst, llvm::Value* src); +llvm::Constant* LLVM_DtoStructInitializer(StructInitializer* si); + +llvm::FunctionType* LLVM_DtoFunctionType(Type* t, const llvm::Type* thisparam = 0); +llvm::FunctionType* LLVM_DtoFunctionType(FuncDeclaration* fdecl); + +llvm::StructType* LLVM_DtoDelegateType(Type* t); +llvm::Value* LLVM_DtoNullDelegate(llvm::Value* v); +llvm::Value* LLVM_DtoDelegateCopy(llvm::Value* dst, llvm::Value* src); + +llvm::StructType* LLVM_DtoArrayType(Type* t); +llvm::ArrayType* LLVM_DtoStaticArrayType(Type* t); +llvm::Value* LLVM_DtoNullArray(llvm::Value* v); +llvm::Value* LLVM_DtoArrayAssign(llvm::Value* l, llvm::Value* r); +void LLVM_DtoSetArray(llvm::Value* arr, llvm::Value* dim, llvm::Value* ptr); +llvm::Constant* LLVM_DtoArrayInitializer(ArrayInitializer* si); +void LLVM_DtoArrayCopy(elem* dst, elem* src); + +void LLVM_DtoArrayInit(llvm::Value* l, llvm::Value* r); + +llvm::GlobalValue::LinkageTypes LLVM_DtoLinkage(PROT prot, uint stc); +unsigned LLVM_DtoCallingConv(LINK l); + +llvm::Value* LLVM_DtoPointedType(llvm::Value* ptr, llvm::Value* val); +llvm::Value* LLVM_DtoBoolean(llvm::Value* val); + +const llvm::Type* LLVM_DtoSize_t(); + +void LLVM_DtoMain(); + +void LLVM_DtoCallClassDtors(TypeClass* tc, llvm::Value* instance); +void LLVM_DtoInitClass(TypeClass* tc, llvm::Value* dst); + +llvm::Constant* LLVM_DtoInitializer(Type* type, Initializer* init); + +#include "enums.h"