Mercurial > projects > ldc
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 ////////////////////////////////////////////////////////////////////////////// |