diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ir/irvar.cpp	Thu Jan 17 03:15:12 2008 +0100
@@ -0,0 +1,63 @@
+#include "llvm/DerivedTypes.h"
+#include "declaration.h"
+#include "ir/irvar.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+IrVar* VarDeclaration::getIrVar()
+{
+    assert(irGlobal || irLocal || irField);
+    return irGlobal ? (IrVar*)irGlobal : irLocal ? (IrVar*)irLocal : (IrVar*)irField;
+}
+
+llvm::Value*& VarDeclaration::getIrValue()
+{
+    return getIrVar()->value;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+IrVar::IrVar(VarDeclaration* var)
+{
+    V = var;
+    value = NULL;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+IrGlobal::IrGlobal(VarDeclaration* v): IrVar(v),
+    type(llvm::OpaqueType::get())
+{
+    constInit = NULL;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+IrLocal::IrLocal(VarDeclaration* v) : IrVar(v)
+{
+    nestedIndex = -1;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+IrField::IrField(VarDeclaration* v) : IrVar(v)
+{
+    index = -1;
+    indexOffset = 0;
+    constInit = NULL;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////