Mercurial > projects > ldc
annotate gen/classes.h @ 140:ffcc9a2f3d9d trunk
[svn r144] fixes
author | lindquist |
---|---|
date | Wed, 23 Jan 2008 12:56:09 +0100 |
parents | 44a95ac7368a |
children | c4c9b4ac021b |
rev | line source |
---|---|
100 | 1 #ifndef LLVMDC_GEN_CLASSES_H |
2 #define LLVMDC_GEN_CLASSES_H | |
3 | |
4 /** | |
102
027b8d8b71ec
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents:
100
diff
changeset
|
5 * Resolves the llvm type for a class declaration |
027b8d8b71ec
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents:
100
diff
changeset
|
6 */ |
027b8d8b71ec
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents:
100
diff
changeset
|
7 void DtoResolveClass(ClassDeclaration* cd); |
027b8d8b71ec
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents:
100
diff
changeset
|
8 |
027b8d8b71ec
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents:
100
diff
changeset
|
9 /** |
100 | 10 * Provides the llvm declaration for a class declaration |
11 */ | |
12 void DtoDeclareClass(ClassDeclaration* cd); | |
13 | |
14 /** | |
15 * Constructs the constant initializer for a class declaration | |
16 */ | |
17 void DtoConstInitClass(ClassDeclaration* cd); | |
18 | |
19 /** | |
20 * Provides the llvm definition for a class declaration | |
21 */ | |
22 void DtoDefineClass(ClassDeclaration* cd); | |
23 | |
24 void DtoDeclareClassInfo(ClassDeclaration* cd); | |
25 void DtoDefineClassInfo(ClassDeclaration* cd); | |
26 | |
133
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
27 DValue* DtoNewClass(TypeClass* type, NewExp* newexp); |
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
28 void DtoInitClass(TypeClass* tc, llvm::Value* dst); |
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
29 DValue* DtoCallClassCtor(TypeClass* type, CtorDeclaration* ctor, Array* arguments, llvm::Value* mem); |
100 | 30 void DtoCallClassDtors(TypeClass* tc, llvm::Value* instance); |
31 | |
114 | 32 DValue* DtoCastClass(DValue* val, Type* to); |
33 DValue* DtoDynamicCastObject(DValue* val, Type* to); | |
133
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
34 |
114 | 35 DValue* DtoCastInterfaceToObject(DValue* val, Type* to); |
133
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
36 DValue* DtoDynamicCastInterface(DValue* val, Type* to); |
113
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
102
diff
changeset
|
37 |
132 | 38 llvm::Value* DtoIndexClass(llvm::Value* ptr, ClassDeclaration* cd, Type* t, unsigned os, std::vector<unsigned>& idxs); |
39 | |
133
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
40 llvm::Value* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl); |
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
41 |
100 | 42 #endif |