Mercurial > projects > ldc
comparison 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 |
comparison
equal
deleted
inserted
replaced
101:169fda3a77d4 | 102:027b8d8b71ec |
---|---|
51 llvm::ConstantInt* DtoConstUint(unsigned i); | 51 llvm::ConstantInt* DtoConstUint(unsigned i); |
52 llvm::ConstantInt* DtoConstInt(int i); | 52 llvm::ConstantInt* DtoConstInt(int i); |
53 llvm::Constant* DtoConstString(const char*); | 53 llvm::Constant* DtoConstString(const char*); |
54 llvm::Constant* DtoConstStringPtr(const char* str, const char* section = 0); | 54 llvm::Constant* DtoConstStringPtr(const char* str, const char* section = 0); |
55 llvm::Constant* DtoConstBool(bool); | 55 llvm::Constant* DtoConstBool(bool); |
56 llvm::Constant* DtoConstNullPtr(const llvm::Type* t); | |
56 | 57 |
57 bool DtoIsTemplateInstance(Dsymbol* s); | 58 bool DtoIsTemplateInstance(Dsymbol* s); |
58 | 59 |
59 void DtoLazyStaticInit(bool istempl, llvm::Value* gvar, Initializer* init, Type* t); | 60 void DtoLazyStaticInit(bool istempl, llvm::Value* gvar, Initializer* init, Type* t); |
60 | 61 |
62 void DtoResolveDsymbol(Dsymbol* dsym); | |
63 void DtoDeclareDsymbol(Dsymbol* dsym); | |
61 void DtoDefineDsymbol(Dsymbol* dsym); | 64 void DtoDefineDsymbol(Dsymbol* dsym); |
62 void DtoConstInitDsymbol(Dsymbol* dsym); | 65 void DtoConstInitDsymbol(Dsymbol* dsym); |
66 | |
63 void DtoConstInitGlobal(VarDeclaration* vd); | 67 void DtoConstInitGlobal(VarDeclaration* vd); |
68 | |
69 void DtoEmptyResolveList(); | |
70 void DtoEmptyDeclareList(); | |
71 void DtoEmptyConstInitList(); | |
72 void DtoForceDeclareDsymbol(Dsymbol* dsym); | |
73 void DtoForceConstInitDsymbol(Dsymbol* dsym); | |
74 void DtoForceDefineDsymbol(Dsymbol* dsym); | |
64 | 75 |
65 // llvm wrappers | 76 // llvm wrappers |
66 void DtoMemCpy(llvm::Value* dst, llvm::Value* src, llvm::Value* nbytes); | 77 void DtoMemCpy(llvm::Value* dst, llvm::Value* src, llvm::Value* nbytes); |
67 bool DtoCanLoad(llvm::Value* ptr); | 78 bool DtoCanLoad(llvm::Value* ptr); |
68 llvm::Value* DtoLoad(llvm::Value* src); | 79 llvm::Value* DtoLoad(llvm::Value* src); |
85 | 96 |
86 // casts | 97 // casts |
87 DValue* DtoCastInt(DValue* val, Type* to); | 98 DValue* DtoCastInt(DValue* val, Type* to); |
88 DValue* DtoCastPtr(DValue* val, Type* to); | 99 DValue* DtoCastPtr(DValue* val, Type* to); |
89 DValue* DtoCastFloat(DValue* val, Type* to); | 100 DValue* DtoCastFloat(DValue* val, Type* to); |
90 DValue* DtoCastArray(DValue* val, Type* to); | |
91 DValue* DtoCastClass(DValue* val, Type* to); | 101 DValue* DtoCastClass(DValue* val, Type* to); |
92 DValue* DtoCast(DValue* val, Type* to); | 102 DValue* DtoCast(DValue* val, Type* to); |
93 | 103 |
94 // binary operations | 104 // binary operations |
95 DValue* DtoBinAdd(DValue* lhs, DValue* rhs); | 105 DValue* DtoBinAdd(DValue* lhs, DValue* rhs); |