Mercurial > projects > ldc
diff gen/tollvm.h @ 100:5071469303d4 trunk
[svn r104] TONS OF FIXES.
Split up declaration, constant initializer gen and definition for globals, structs, classes and functions.
Improved ClassInfo support (not complete), not in vtable yet.
Fixed a bunch of forward reference problems.
Much more. Major commit! :)
author | lindquist |
---|---|
date | Fri, 16 Nov 2007 08:21:47 +0100 |
parents | c4e161556a21 |
children | 027b8d8b71ec |
line wrap: on
line diff
--- a/gen/tollvm.h Thu Nov 15 00:24:44 2007 +0100 +++ b/gen/tollvm.h Fri Nov 16 08:21:47 2007 +0100 @@ -9,10 +9,6 @@ bool DtoIsPassedByRef(Type* type); Type* DtoDType(Type* t); -const llvm::FunctionType* DtoFunctionType(Type* t, const llvm::Type* thistype, bool ismain = false); -const llvm::FunctionType* DtoFunctionType(FuncDeclaration* fdecl); -llvm::Function* DtoDeclareFunction(FuncDeclaration* fdecl); - const llvm::StructType* DtoDelegateType(Type* t); llvm::Value* DtoNullDelegate(llvm::Value* v); llvm::Value* DtoDelegateCopy(llvm::Value* dst, llvm::Value* src); @@ -28,12 +24,8 @@ const llvm::StructType* DtoComplexType(const llvm::Type* base); -void DtoMain(); - -void DtoCallClassDtors(TypeClass* tc, llvm::Value* instance); -void DtoInitClass(TypeClass* tc, llvm::Value* dst); - llvm::Constant* DtoConstInitializer(Type* type, Initializer* init); +llvm::Constant* DtoConstFieldInitializer(Type* type, Initializer* init); DValue* DtoInitializer(Initializer* init); llvm::Function* LLVM_DeclareMemSet32(); @@ -66,7 +58,9 @@ void DtoLazyStaticInit(bool istempl, llvm::Value* gvar, Initializer* init, Type* t); -void DtoClassInfo(ClassDeclaration* cd); +void DtoDefineDsymbol(Dsymbol* dsym); +void DtoConstInitDsymbol(Dsymbol* dsym); +void DtoConstInitGlobal(VarDeclaration* vd); // llvm wrappers void DtoMemCpy(llvm::Value* dst, llvm::Value* src, llvm::Value* nbytes);