comparison ir/irvar.cpp @ 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 ccd07d9f2ce9
comparison
equal deleted inserted replaced
135:176bd52b3cf5 136:0e28624814e8
1 #include "llvm/DerivedTypes.h"
2 #include "declaration.h"
3 #include "ir/irvar.h"
4
5
6 //////////////////////////////////////////////////////////////////////////////
7 //////////////////////////////////////////////////////////////////////////////
8 //////////////////////////////////////////////////////////////////////////////
9
10 IrVar* VarDeclaration::getIrVar()
11 {
12 assert(irGlobal || irLocal || irField);
13 return irGlobal ? (IrVar*)irGlobal : irLocal ? (IrVar*)irLocal : (IrVar*)irField;
14 }
15
16 llvm::Value*& VarDeclaration::getIrValue()
17 {
18 return getIrVar()->value;
19 }
20
21 //////////////////////////////////////////////////////////////////////////////
22 //////////////////////////////////////////////////////////////////////////////
23 //////////////////////////////////////////////////////////////////////////////
24
25 IrVar::IrVar(VarDeclaration* var)
26 {
27 V = var;
28 value = NULL;
29 }
30
31 //////////////////////////////////////////////////////////////////////////////
32 //////////////////////////////////////////////////////////////////////////////
33 //////////////////////////////////////////////////////////////////////////////
34
35 IrGlobal::IrGlobal(VarDeclaration* v): IrVar(v),
36 type(llvm::OpaqueType::get())
37 {
38 constInit = NULL;
39 }
40
41 //////////////////////////////////////////////////////////////////////////////
42 //////////////////////////////////////////////////////////////////////////////
43 //////////////////////////////////////////////////////////////////////////////
44
45 IrLocal::IrLocal(VarDeclaration* v) : IrVar(v)
46 {
47 nestedIndex = -1;
48 }
49
50 //////////////////////////////////////////////////////////////////////////////
51 //////////////////////////////////////////////////////////////////////////////
52 //////////////////////////////////////////////////////////////////////////////
53
54 IrField::IrField(VarDeclaration* v) : IrVar(v)
55 {
56 index = -1;
57 indexOffset = 0;
58 constInit = NULL;
59 }
60
61 //////////////////////////////////////////////////////////////////////////////
62 //////////////////////////////////////////////////////////////////////////////
63 //////////////////////////////////////////////////////////////////////////////