Mercurial > projects > ldc
diff gen/tollvm.h @ 102:027b8d8b71ec trunk
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
Basically it tries to do the following in order: Resolve types, Declare symbols, Create constant initializers, Apply initializers, Generate functions bodies.
ClassInfo is now has the most useful(biased?) members working.
Probably other stuf...
author | lindquist |
---|---|
date | Sun, 18 Nov 2007 06:52:57 +0100 |
parents | 5071469303d4 |
children | 4d1e9eb001e0 |
line wrap: on
line diff
--- a/gen/tollvm.h Fri Nov 16 10:01:24 2007 +0100 +++ b/gen/tollvm.h Sun Nov 18 06:52:57 2007 +0100 @@ -53,15 +53,26 @@ llvm::Constant* DtoConstString(const char*); llvm::Constant* DtoConstStringPtr(const char* str, const char* section = 0); llvm::Constant* DtoConstBool(bool); +llvm::Constant* DtoConstNullPtr(const llvm::Type* t); bool DtoIsTemplateInstance(Dsymbol* s); void DtoLazyStaticInit(bool istempl, llvm::Value* gvar, Initializer* init, Type* t); +void DtoResolveDsymbol(Dsymbol* dsym); +void DtoDeclareDsymbol(Dsymbol* dsym); void DtoDefineDsymbol(Dsymbol* dsym); void DtoConstInitDsymbol(Dsymbol* dsym); + void DtoConstInitGlobal(VarDeclaration* vd); +void DtoEmptyResolveList(); +void DtoEmptyDeclareList(); +void DtoEmptyConstInitList(); +void DtoForceDeclareDsymbol(Dsymbol* dsym); +void DtoForceConstInitDsymbol(Dsymbol* dsym); +void DtoForceDefineDsymbol(Dsymbol* dsym); + // llvm wrappers void DtoMemCpy(llvm::Value* dst, llvm::Value* src, llvm::Value* nbytes); bool DtoCanLoad(llvm::Value* ptr); @@ -87,7 +98,6 @@ DValue* DtoCastInt(DValue* val, Type* to); DValue* DtoCastPtr(DValue* val, Type* to); DValue* DtoCastFloat(DValue* val, Type* to); -DValue* DtoCastArray(DValue* val, Type* to); DValue* DtoCastClass(DValue* val, Type* to); DValue* DtoCast(DValue* val, Type* to);