annotate gen/classes.h @ 217:0806379a5eca trunk

[svn r233] Added: -oq command line option for writing fully qualified object names. Added: started support for x86 80bit floating point. Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for using other attributes. Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling! Changed: performed other misc. cleanups. Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0). Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up linking quite a bit.
author lindquist
date Thu, 05 Jun 2008 06:38:36 +0200
parents 7816aafeea3c
children a34078905d01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
1 #ifndef LLVMDC_GEN_CLASSES_H
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
2 #define LLVMDC_GEN_CLASSES_H
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
12 * Provides the llvm declaration for a class declaration
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
13 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
14 void DtoDeclareClass(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
15
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
16 /**
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
17 * Constructs the constant initializer for a class declaration
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
18 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
19 void DtoConstInitClass(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
20
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
21 /**
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
22 * Provides the llvm definition for a class declaration
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
23 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
24 void DtoDefineClass(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
25
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
26 void DtoDeclareClassInfo(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
27 void DtoDefineClassInfo(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
28
133
44a95ac7368a [svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
lindquist
parents: 132
diff changeset
29 DValue* DtoNewClass(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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
33
114
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents: 113
diff changeset
34 DValue* DtoCastClass(DValue* val, Type* to);
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents: 113
diff changeset
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
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents: 113
diff changeset
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
1700239cab2e [svn r136] MAJOR UNSTABLE UPDATE!!!
lindquist
parents: 114
diff changeset
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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
44 #endif