Mercurial > projects > ldc
comparison gen/irstate.h @ 173:db9890b3fb64 trunk
[svn r189] moving IR data back into DMD frontend nodes
author | ChristianK |
---|---|
date | Tue, 06 May 2008 07:56:03 +0200 |
parents | 3a891cfcd249 |
children | 3aed08fb64f4 |
comparison
equal
deleted
inserted
replaced
172:68a7dd38c03c | 173:db9890b3fb64 |
---|---|
1 #ifndef LLVMDC_GEN_IRSTATE_H | 1 #ifndef LLVMDC_GEN_IRSTATE_H |
2 #define LLVMDC_GEN_IRSTATE_H | 2 #define LLVMDC_GEN_IRSTATE_H |
3 | 3 |
4 #include <vector> | 4 #include <vector> |
5 #include <list> | 5 #include <list> |
6 #include <map> | |
7 | 6 |
8 #include "root.h" | 7 #include "root.h" |
9 #include "aggregate.h" | 8 #include "aggregate.h" |
10 | 9 |
11 #include "ir/irfunction.h" | 10 #include "ir/irfunction.h" |
12 #include "ir/irstruct.h" | 11 #include "ir/irstruct.h" |
13 #include "ir/irvar.h" | 12 #include "ir/irvar.h" |
14 #include "ir/irsymbol.h" | |
15 #include "ir/irtype.h" | |
16 | 13 |
17 // global ir state for current module | 14 // global ir state for current module |
18 struct IRState; | 15 struct IRState; |
19 extern IRState* gIR; | 16 extern IRState* gIR; |
20 extern const llvm::TargetData* gTargetData; | 17 extern const llvm::TargetData* gTargetData; |
78 llvm::Module* module; | 75 llvm::Module* module; |
79 | 76 |
80 // interface info type, used in DtoInterfaceInfoType | 77 // interface info type, used in DtoInterfaceInfoType |
81 llvm::StructType* interfaceInfoType; | 78 llvm::StructType* interfaceInfoType; |
82 | 79 |
83 // ir data associated with DMD Dsymbol nodes | |
84 std::map<Dsymbol*, IrDsymbol> irDsymbol; | |
85 | |
86 // ir data associated with DMD Type instances | |
87 std::map<Type*, IrType> irType; | |
88 | |
89 // functions | 80 // functions |
90 typedef std::vector<IrFunction*> FunctionVector; | 81 typedef std::vector<IrFunction*> FunctionVector; |
91 FunctionVector functions; | 82 FunctionVector functions; |
92 IrFunction* func(); | 83 IrFunction* func(); |
93 | 84 |