Mercurial > projects > ldc
comparison gen/functions.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 | 9167d492cbc2 |
children | 207a8a438dea |
comparison
equal
deleted
inserted
replaced
1363:b7c8506e1eed | 1364:46f6365a50d7 |
---|---|
1 #ifndef LDC_GEN_FUNCTIONS_H | 1 #ifndef LDC_GEN_FUNCTIONS_H |
2 #define LDC_GEN_FUNCTIONS_H | 2 #define LDC_GEN_FUNCTIONS_H |
3 | |
4 #include "mars.h" | |
5 | |
6 struct FuncDeclaration; | |
7 struct Type; | |
8 | |
9 struct IRAsmBlock; | |
10 | |
11 namespace llvm | |
12 { | |
13 class Value; | |
14 } | |
3 | 15 |
4 const llvm::FunctionType* DtoFunctionType(Type* t, Type* thistype, Type* nesttype, bool ismain = false); | 16 const llvm::FunctionType* DtoFunctionType(Type* t, Type* thistype, Type* nesttype, bool ismain = false); |
5 const llvm::FunctionType* DtoFunctionType(FuncDeclaration* fdecl); | 17 const llvm::FunctionType* DtoFunctionType(FuncDeclaration* fdecl); |
6 | 18 |
7 const llvm::FunctionType* DtoBaseFunctionType(FuncDeclaration* fdecl); | 19 const llvm::FunctionType* DtoBaseFunctionType(FuncDeclaration* fdecl); |
12 | 24 |
13 void DtoDefineNakedFunction(FuncDeclaration* fd); | 25 void DtoDefineNakedFunction(FuncDeclaration* fd); |
14 void emitABIReturnAsmStmt(IRAsmBlock* asmblock, Loc loc, FuncDeclaration* fdecl); | 26 void emitABIReturnAsmStmt(IRAsmBlock* asmblock, Loc loc, FuncDeclaration* fdecl); |
15 | 27 |
16 DValue* DtoArgument(Argument* fnarg, Expression* argexp); | 28 DValue* DtoArgument(Argument* fnarg, Expression* argexp); |
17 void DtoVariadicArgument(Expression* argexp, LLValue* dst); | 29 void DtoVariadicArgument(Expression* argexp, llvm::Value* dst); |
18 | 30 |
19 #endif | 31 #endif |