view ir/irvar.h @ 435:74101be2a553

Added type param to DVarValue as DMD sometimes overrides the type of the VarDeclaration. Added support for align(1)/packed structs, other alignments are still ignored. Fixed some problems with accessing lazy arguments.
author Tomas Lindquist Olsen <>
date Wed, 30 Jul 2008 10:12:55 +0200
parents 0e28624814e8
children eef8ac26c66c
line wrap: on
line source


#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;