From 06a29342d3d3f1d5e15c5f1e1a2ffd05cae0d324 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Fri, 27 Mar 2009 23:24:47 +0100 Subject: [PATCH] Added missing new files. --- ir/ir.cpp | 34 ++++++++++++++++++++++++++++++++++ ir/irsymbol.cpp | 1 + ir/irsymbol.h | 20 ++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 ir/ir.cpp create mode 100644 ir/irsymbol.cpp create mode 100644 ir/irsymbol.h diff --git a/ir/ir.cpp b/ir/ir.cpp new file mode 100644 index 00000000..dd7f611b --- /dev/null +++ b/ir/ir.cpp @@ -0,0 +1,34 @@ +#include "llvm/Target/TargetData.h" + +#include "gen/irstate.h" +#include "gen/tollvm.h" +#include "gen/functions.h" + +#include "ir/ir.h" +#include "ir/irfunction.h" + + +unsigned GetTypeAlignment(Ir* ir, Type* t) +{ + return gTargetData->getABITypeAlignment(DtoType(t)); +} + +Ir::Ir() +: irs(NULL) +{ +} + +void Ir::addFunctionBody(IrFunction * f) +{ + functionbodies.push_back(f); +} + +void Ir::emitFunctionBodies() +{ + while (!functionbodies.empty()) + { + IrFunction* irf = functionbodies.front(); + functionbodies.pop_front(); + DtoDefineFunction(irf->decl); + } +} diff --git a/ir/irsymbol.cpp b/ir/irsymbol.cpp new file mode 100644 index 00000000..2df8f06e --- /dev/null +++ b/ir/irsymbol.cpp @@ -0,0 +1 @@ +#include "ir/irsymbol.h" diff --git a/ir/irsymbol.h b/ir/irsymbol.h new file mode 100644 index 00000000..635c8da5 --- /dev/null +++ b/ir/irsymbol.h @@ -0,0 +1,20 @@ +#ifndef __LDC_IR_IRSYMBOL_H__ +#define __LDC_IR_IRSYMBOL_H__ + +#include "ir/ir.h" + +/// Base class for all symbols. +struct IrSymbol +{ + /// + IrSymbol(Ir* ir) : ir(ir) {} + + /// Migrate symbols to current module if necessary. + virtual void migrate() = 0; + +protected: + /// + Ir* ir; +}; + +#endif