view ir/ir.h @ 1354:701d11a1e7b1

Re-apply [1346], which was reverted in [1348], now that padding should no longer be a problem. As noted before, this will break ABI-compatibility on x86-64, so recompile old code before linking with newly-compiled code if you're on x86-64. As an added bonus, I actually tested it this time :).
author Frits van Bommel <fvbommel wxs.nl>
date Thu, 14 May 2009 20:40:56 +0200
parents 3d1b16dabd25
children 46f6365a50d7
line wrap: on
line source

// this head contains stuff used by all the IR

#ifndef LDC_IR_IR_H
#define LDC_IR_IR_H

#include <deque>

#include "ir/irforw.h"
#include "root.h"

struct IRState;
struct IrFunction;

struct IrBase : Object
{
    virtual ~IrBase() {}
};

struct Ir
{
    Ir();

    void setState(IRState* p)   { irs = p; }
    IRState* getState()         { return irs; }

    void addFunctionBody(IrFunction* f);
    void emitFunctionBodies();

private:
    IRState* irs;

    std::deque<IrFunction*> functionbodies;
};

#endif