annotate ir/irdsymbol.h @ 1351:8d501abecd24

Initial (but disabled) fix for ticket #294 , the actual part that fixes the bug is in a #if 0 block as I'm afraid it will cause regressions. I'm most likely not going to be around tonight, and maybe not tomorrow as well, so I'm pushing it in case someone wants to run some serious testing/investigate the problem noted in llvmhelpers.cpp : realignOffset .
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Thu, 14 May 2009 17:20:17 +0200
parents 1860414bf3b7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1146
1860414bf3b7 * Moved ir/irsymbol.cpp/h into ir/irdsymbol.cpp/h.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 664
diff changeset
1 #ifndef LDC_IR_IRDSYMBOL_H
1860414bf3b7 * Moved ir/irsymbol.cpp/h into ir/irdsymbol.cpp/h.
Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
parents: 664
diff changeset
2 #define LDC_IR_IRDSYMBOL_H
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
3
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
4 #include <set>
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
5
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
6 struct IrModule;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
7 struct IrFunction;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
8 struct IrStruct;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
9 struct IrGlobal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
10 struct IrLocal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
11 struct IrField;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
12 struct IrVar;
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
13 struct Dsymbol;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
14
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
15 namespace llvm {
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
16 struct Value;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
17 }
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
18
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
19 struct IrDsymbol
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
20 {
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
21 static std::set<IrDsymbol*> list;
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
22 static void resetAll();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
23
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
24 // overload all of these to make sure
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
25 // the static list is up to date
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
26 IrDsymbol();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
27 IrDsymbol(const IrDsymbol& s);
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
28 ~IrDsymbol();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
29
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
30 void reset();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
31
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
32 Module* DModule;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
33
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
34 bool resolved;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
35 bool declared;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
36 bool initialized;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
37 bool defined;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
38
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
39 IrModule* irModule;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
40
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
41 IrStruct* irStruct;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
42
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
43 IrFunction* irFunc;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
44
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
45 IrGlobal* irGlobal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
46 IrLocal* irLocal;
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
47 IrField* irField;
173
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
48 IrVar* getIrVar();
db9890b3fb64 [svn r189] moving IR data back into DMD frontend nodes
ChristianK
parents: 156
diff changeset
49 llvm::Value*& getIrValue();
175
c44e6a711885 [svn r191] Fixed: array literals did not support all type/storage combinations.
lindquist
parents: 173
diff changeset
50
c44e6a711885 [svn r191] Fixed: array literals did not support all type/storage combinations.
lindquist
parents: 173
diff changeset
51 bool isSet();
156
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
52 };
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
53
ccd07d9f2ce9 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
ChristianK
parents:
diff changeset
54 #endif