annotate gen/classes.h @ 210:1d6cfdbc97f0 trunk

[svn r226] Fixed: deleting interface. Removed: unused util function for calling class destructors.
author lindquist
date Wed, 14 May 2008 02:00:23 +0200
parents c4c9b4ac021b
children 7816aafeea3c
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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
10 * Provides the llvm declaration for a class declaration
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
11 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
12 void DtoDeclareClass(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
13
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
14 /**
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
15 * Constructs the constant initializer for a class declaration
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
16 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
17 void DtoConstInitClass(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
18
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
19 /**
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
20 * Provides the llvm definition for a class declaration
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
21 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
22 void DtoDefineClass(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
23
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
24 void DtoDeclareClassInfo(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
25 void DtoDefineClassInfo(ClassDeclaration* cd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
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);
209
c4c9b4ac021b [svn r225] Fixed: delete expressions no longer use llvm's free instruction, which crashes on a GC provided pointer.
lindquist
parents: 133
diff changeset
30 void DtoFinalizeClass(llvm::Value* inst);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
31
114
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents: 113
diff changeset
32 DValue* DtoCastClass(DValue* val, Type* to);
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents: 113
diff changeset
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
5880c12dba83 [svn r118] Fixed dynamic casts.
lindquist
parents: 113
diff changeset
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
1700239cab2e [svn r136] MAJOR UNSTABLE UPDATE!!!
lindquist
parents: 114
diff changeset
38 llvm::Value* DtoIndexClass(llvm::Value* ptr, ClassDeclaration* cd, Type* t, unsigned os, std::vector<unsigned>& idxs);
1700239cab2e [svn r136] MAJOR UNSTABLE UPDATE!!!
lindquist
parents: 114
diff changeset
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
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
42 #endif