Mercurial > projects > ldc
comparison ir/irvar.h @ 136:0e28624814e8 trunk
[svn r140] did a lot of the work towards being able to pass multiple modules on the command line. not complete yet though
author | lindquist |
---|---|
date | Thu, 17 Jan 2008 03:15:12 +0100 |
parents | |
children | eef8ac26c66c |
comparison
equal
deleted
inserted
replaced
135:176bd52b3cf5 | 136:0e28624814e8 |
---|---|
1 #ifndef LLVMDC_IR_IRVAR_H | |
2 #define LLVMDC_IR_IRVAR_H | |
3 | |
4 #include "ir/ir.h" | |
5 #include "llvm/Type.h" | |
6 | |
7 struct IrVar : IrBase | |
8 { | |
9 IrVar(VarDeclaration* var); | |
10 | |
11 VarDeclaration* V; | |
12 llvm::Value* value; | |
13 }; | |
14 | |
15 // represents a global variable | |
16 struct IrGlobal : IrVar | |
17 { | |
18 IrGlobal(VarDeclaration* v); | |
19 | |
20 llvm::PATypeHolder type; | |
21 llvm::Constant* constInit; | |
22 }; | |
23 | |
24 // represents a local variable variable | |
25 struct IrLocal : IrVar | |
26 { | |
27 IrLocal(VarDeclaration* v); | |
28 | |
29 int nestedIndex; | |
30 }; | |
31 | |
32 // represents an aggregate field variable | |
33 struct IrField : IrVar | |
34 { | |
35 IrField(VarDeclaration* v); | |
36 | |
37 int index; | |
38 size_t indexOffset; | |
39 llvm::Constant* constInit; | |
40 }; | |
41 | |
42 #endif |