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);