Added IrTypeFunction and IrTypeDelegate and eliminated IrDType. This means the Type::ir field can be removed. It's the final part needed for the move to a slightly more sane type system. Now the whole thing just needs to be cleaned up :P

Added -v-cg switch, which right now just prints "codegen: module.name (module/name.d)" to stdout, this can really help figuring out where, in some complex build command, things go wrong.
This commit is contained in:
Tomas Lindquist Olsen
2009-05-16 18:19:52 +02:00
parent 61514569ff
commit c0f2af5afd
20 changed files with 148 additions and 129 deletions

42
ir/irtypefunction.h Normal file
View File

@@ -0,0 +1,42 @@
#ifndef __LDC_IR_IRTYPEFUNCTION_H__
#define __LDC_IR_IRTYPEFUNCTION_H__
#include "ir/irtype.h"
class IrFuncTy;
///
class IrTypeFunction : public IrType
{
public:
///
IrTypeFunction(Type* dt);
///
IrTypeFunction* isFunction() { return this; }
///
const llvm::Type* buildType();
IrFuncTy* fty() { return irfty; }
protected:
///
IrFuncTy* irfty;
};
///
class IrTypeDelegate : public IrType
{
public:
///
IrTypeDelegate(Type* dt);
///
IrTypeDelegate* isDelegate() { return this; }
///
const llvm::Type* buildType();
};
#endif