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