diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ir/irvar.h	Thu Jan 17 03:15:12 2008 +0100
@@ -0,0 +1,42 @@
+#ifndef LLVMDC_IR_IRVAR_H
+#define LLVMDC_IR_IRVAR_H
+
+#include "ir/ir.h"
+#include "llvm/Type.h"
+
+struct IrVar : IrBase
+{
+    IrVar(VarDeclaration* var);
+
+    VarDeclaration* V;
+    llvm::Value* value;
+};
+
+// represents a global variable
+struct IrGlobal : IrVar
+{
+    IrGlobal(VarDeclaration* v);
+
+    llvm::PATypeHolder type;
+    llvm::Constant* constInit;
+};
+
+// represents a local variable variable
+struct IrLocal : IrVar
+{
+    IrLocal(VarDeclaration* v);
+
+    int nestedIndex;
+};
+
+// represents an aggregate field variable
+struct IrField : IrVar
+{
+    IrField(VarDeclaration* v);
+
+    int index;
+    size_t indexOffset;
+    llvm::Constant* constInit;
+};
+
+#endif