view ir/irsymbol.h @ 1506:76936858d1c6

Return `void*` from _d_allocclass so LLVM doesn't do weird things with it... This allows `-instcombine` followed by `-gvn` to do devirtualization, so add `-gvn` in strategic places in the default pass order.
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 20 Jun 2009 11:39:13 +0200
parents 46f6365a50d7
children
line wrap: on
line source

#ifndef __LDC_IR_IRSYMBOL_H__
#define __LDC_IR_IRSYMBOL_H__

#include "ir/ir.h"

/// Base class for all symbols.
class IrSymbol
{
public:
    ///
    IrSymbol(Ir* ir) : ir(ir) {}

    /// Migrate symbols to current module if necessary.
    virtual void migrate() = 0;

protected:
    ///
    Ir* ir;
};

#endif