comparison dmd/dsymbol.h @ 1147:dbe4af57b240

Changed use of toObjFile to a new codegen method. More versioning of DMD specific codegen code.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Fri, 27 Mar 2009 17:54:27 +0100
parents 1860414bf3b7
children 46f6365a50d7
comparison
equal deleted inserted replaced
1146:1860414bf3b7 1147:dbe4af57b240
82 struct TYPE; 82 struct TYPE;
83 #endif 83 #endif
84 84
85 // llvm 85 // llvm
86 #if IN_LLVM 86 #if IN_LLVM
87 struct Ir;
88 struct IrSymbol;
87 namespace llvm 89 namespace llvm
88 { 90 {
89 class Value; 91 class Value;
90 } 92 }
91 #endif 93 #endif
178 180
179 #if IN_DMD 181 #if IN_DMD
180 // Backend 182 // Backend
181 183
182 virtual Symbol *toSymbol(); // to backend symbol 184 virtual Symbol *toSymbol(); // to backend symbol
183 #endif
184 virtual void toObjFile(int multiobj); // compile to .obj file 185 virtual void toObjFile(int multiobj); // compile to .obj file
185 #if IN_DMD
186 virtual int cvMember(unsigned char *p); // emit cv debug info for member 186 virtual int cvMember(unsigned char *p); // emit cv debug info for member
187 187
188 Symbol *toImport(); // to backend import symbol 188 Symbol *toImport(); // to backend import symbol
189 static Symbol *toImport(Symbol *s); // to backend import symbol 189 static Symbol *toImport(Symbol *s); // to backend import symbol
190 190
230 virtual AttribDeclaration *isAttribDeclaration() { return NULL; } 230 virtual AttribDeclaration *isAttribDeclaration() { return NULL; }
231 virtual TypeInfoDeclaration* isTypeInfoDeclaration() { return NULL; } 231 virtual TypeInfoDeclaration* isTypeInfoDeclaration() { return NULL; }
232 virtual ClassInfoDeclaration* isClassInfoDeclaration() { return NULL; } 232 virtual ClassInfoDeclaration* isClassInfoDeclaration() { return NULL; }
233 233
234 #if IN_LLVM 234 #if IN_LLVM
235 /// Codegen traversal
236 virtual void codegen(Ir* ir);
237
235 // llvm stuff 238 // llvm stuff
236 int llvmInternal; 239 int llvmInternal;
237 240
238 IrDsymbol ir; 241 IrDsymbol ir;
242 IrSymbol* irsym;
239 #endif 243 #endif
240 }; 244 };
241 245
242 // Dsymbol that generates a scope 246 // Dsymbol that generates a scope
243 247