comparison ir/irtypefunction.h @ 1364:46f6365a50d7

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.
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Sat, 16 May 2009 18:19:52 +0200
parents
children
comparison
equal deleted inserted replaced
1363:b7c8506e1eed 1364:46f6365a50d7
1 #ifndef __LDC_IR_IRTYPEFUNCTION_H__
2 #define __LDC_IR_IRTYPEFUNCTION_H__
3
4 #include "ir/irtype.h"
5
6 class IrFuncTy;
7
8 ///
9 class IrTypeFunction : public IrType
10 {
11 public:
12 ///
13 IrTypeFunction(Type* dt);
14
15 ///
16 IrTypeFunction* isFunction() { return this; }
17
18 ///
19 const llvm::Type* buildType();
20
21 IrFuncTy* fty() { return irfty; }
22
23 protected:
24 ///
25 IrFuncTy* irfty;
26 };
27
28 ///
29 class IrTypeDelegate : public IrType
30 {
31 public:
32 ///
33 IrTypeDelegate(Type* dt);
34
35 ///
36 IrTypeDelegate* isDelegate() { return this; }
37
38 ///
39 const llvm::Type* buildType();
40 };
41
42 #endif