Mercurial > projects > ldc
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 |