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