Mercurial > projects > ldc
annotate gen/classes.h @ 607:9526b29ae342
Fixed the optimizer thing, since llvm PR 2800 is already fixed, users need to upgrade LLVM to latest svn.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Thu, 18 Sep 2008 21:07:35 +0200 |
parents | a34078905d01 |
children | eef8ac26c66c |
rev | line source |
---|---|
100 | 1 #ifndef LLVMDC_GEN_CLASSES_H |
2 #define LLVMDC_GEN_CLASSES_H | |
3 | |
217
0806379a5eca
[svn r233] Added: -oq command line option for writing fully qualified object names.
lindquist
parents:
213
diff
changeset
|
4 #include "gen/structs.h" |
0806379a5eca
[svn r233] Added: -oq command line option for writing fully qualified object names.
lindquist
parents:
213
diff
changeset
|
5 |
100 | 6 /** |
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
|
7 * 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
|
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 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
|
10 |
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
|
11 /** |
100 | 12 * Provides the llvm declaration for a class declaration |
13 */ | |
14 void DtoDeclareClass(ClassDeclaration* cd); | |
15 | |
16 /** | |
17 * Constructs the constant initializer for a class declaration | |
18 */ | |
19 void DtoConstInitClass(ClassDeclaration* cd); | |
20 | |
21 /** | |
22 * Provides the llvm definition for a class declaration | |
23 */ | |
24 void DtoDefineClass(ClassDeclaration* cd); | |
25 | |
26 void DtoDeclareClassInfo(ClassDeclaration* cd); | |
27 void DtoDefineClassInfo(ClassDeclaration* cd); | |
28 | |
486
a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
217
diff
changeset
|
29 DValue* DtoNewClass(Loc loc, TypeClass* type, NewExp* newexp); |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
210
diff
changeset
|
30 void DtoInitClass(TypeClass* tc, LLValue* dst); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
210
diff
changeset
|
31 DValue* DtoCallClassCtor(TypeClass* type, CtorDeclaration* ctor, Array* arguments, LLValue* mem); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
210
diff
changeset
|
32 void DtoFinalizeClass(LLValue* inst); |
100 | 33 |
114 | 34 DValue* DtoCastClass(DValue* val, Type* to); |
35 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
|
36 |
114 | 37 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
|
38 DValue* DtoDynamicCastInterface(DValue* val, Type* to); |
113
27b9f749d9fe
[svn r117] Initial working implementation of interfaces.
lindquist
parents:
102
diff
changeset
|
39 |
217
0806379a5eca
[svn r233] Added: -oq command line option for writing fully qualified object names.
lindquist
parents:
213
diff
changeset
|
40 LLValue* DtoIndexClass(LLValue* ptr, ClassDeclaration* cd, Type* t, unsigned os, DStructIndexVector& idxs); |
132 | 41 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
210
diff
changeset
|
42 LLValue* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl); |
133
44a95ac7368a
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents:
132
diff
changeset
|
43 |
100 | 44 #endif |