annotate ir/irvar.h @ 883:b52d5de7783f

GC defines and linkage changes.
author Christian Kamm <kamm incasoftware de>
date Thu, 08 Jan 2009 18:20:02 +0100
parents 340acf1535d0
children 8699c450a1a0
rev   line source
kamm@664 1 #ifndef LDC_IR_IRVAR_H
kamm@664 2 #define LDC_IR_IRVAR_H
lindquist@136 3
lindquist@136 4 #include "ir/ir.h"
lindquist@136 5 #include "llvm/Type.h"
lindquist@136 6
lindquist@136 7 struct IrVar : IrBase
lindquist@136 8 {
lindquist@136 9 IrVar(VarDeclaration* var);
lindquist@136 10
lindquist@136 11 VarDeclaration* V;
lindquist@136 12 llvm::Value* value;
lindquist@136 13 };
lindquist@136 14
lindquist@136 15 // represents a global variable
lindquist@136 16 struct IrGlobal : IrVar
lindquist@136 17 {
lindquist@136 18 IrGlobal(VarDeclaration* v);
lindquist@136 19
lindquist@136 20 llvm::PATypeHolder type;
lindquist@136 21 llvm::Constant* constInit;
lindquist@136 22 };
lindquist@136 23
lindquist@136 24 // represents a local variable variable
lindquist@136 25 struct IrLocal : IrVar
lindquist@136 26 {
lindquist@136 27 IrLocal(VarDeclaration* v);
lindquist@136 28
lindquist@136 29 int nestedIndex;
lindquist@136 30 };
lindquist@136 31
lindquist@136 32 // represents an aggregate field variable
lindquist@136 33 struct IrField : IrVar
lindquist@136 34 {
lindquist@136 35 IrField(VarDeclaration* v);
lindquist@136 36
tomas@797 37 unsigned index;
tomas@797 38 unsigned unionOffset;
tomas@797 39
lindquist@136 40 llvm::Constant* constInit;
lindquist@136 41 };
lindquist@136 42
lindquist@136 43 #endif