comparison gen/irstate.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 855adfdb8d38
comparison
equal deleted inserted replaced
101:169fda3a77d4 102:027b8d8b71ec
3 3
4 #include <stack> 4 #include <stack>
5 #include <vector> 5 #include <vector>
6 #include <deque> 6 #include <deque>
7 #include <map> 7 #include <map>
8 #include <list>
8 9
9 #include "root.h" 10 #include "root.h"
10 11
11 // global ir state for current module 12 // global ir state for current module
12 struct IRState; 13 struct IRState;
174 std::vector<DValue*> arrays; 175 std::vector<DValue*> arrays;
175 176
176 // builder helper 177 // builder helper
177 IRBuilderHelper ir; 178 IRBuilderHelper ir;
178 179
179 typedef std::vector<Dsymbol*> DsymbolVector; 180 typedef std::list<Dsymbol*> DsymbolList;
181 // dsymbols that need to be resolved
182 DsymbolList resolveList;
183 // dsymbols that need to be declared
184 DsymbolList declareList;
180 // dsymbols that need constant initializers constructed 185 // dsymbols that need constant initializers constructed
181 DsymbolVector constInitQueue; 186 DsymbolList constInitList;
182 // dsymbols that need definitions (symbols in current module) 187 // dsymbols that need definitions
183 DsymbolVector defineQueue; 188 DsymbolList defineList;
184 }; 189 };
185 190
186 #endif // LLVMDC_GEN_IRSTATE_H 191 #endif // LLVMDC_GEN_IRSTATE_H