annotate gen/structs.h @ 883:b52d5de7783f

GC defines and linkage changes.
author Christian Kamm <kamm incasoftware de>
date Thu, 08 Jan 2009 18:20:02 +0100
parents af7a6faf9406
children 3cf0066e6faf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
88
058d3925950e [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too.
lindquist
parents:
diff changeset
1 #ifndef LLVMD_GEN_STRUCTS_H
058d3925950e [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too.
lindquist
parents:
diff changeset
2 #define LLVMD_GEN_STRUCTS_H
058d3925950e [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too.
lindquist
parents:
diff changeset
3
058d3925950e [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too.
lindquist
parents:
diff changeset
4 struct StructInitializer;
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
5
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 102
diff changeset
6 LLConstant* DtoConstStructInitializer(StructInitializer* si);
870
af7a6faf9406 Fix #153. Factor out common code in StructLiteralExp::to(Const)Elem.
Christian Kamm <kamm incasoftware de>
parents: 797
diff changeset
7 std::vector<llvm::Value*> DtoStructLiteralValues(const StructDeclaration* sd, const std::vector<llvm::Value*>& inits);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
8
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
9 /**
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
10 * Resolves the llvm type for a struct
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 */
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
12 void DtoResolveStruct(StructDeclaration* sd);
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
13
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
14 /**
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
15 * Provides the llvm declaration for a struct
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
16 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
17 void DtoDeclareStruct(StructDeclaration* sd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
18
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
19 /**
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
20 * Constructs the constant default initializer a struct
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
21 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
22 void DtoConstInitStruct(StructDeclaration* sd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
23
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
24 /**
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
25 * Provides the llvm definition for a struct
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
26 */
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
27 void DtoDefineStruct(StructDeclaration* sd);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents: 88
diff changeset
28
344
e20ce6d8d374 [svn r365] Implemented raw struct equality comparison, uses C memcmp.
lindquist
parents: 244
diff changeset
29 /**
e20ce6d8d374 [svn r365] Implemented raw struct equality comparison, uses C memcmp.
lindquist
parents: 244
diff changeset
30 * Returns a boolean=true if the two structs are equal
e20ce6d8d374 [svn r365] Implemented raw struct equality comparison, uses C memcmp.
lindquist
parents: 244
diff changeset
31 */
e20ce6d8d374 [svn r365] Implemented raw struct equality comparison, uses C memcmp.
lindquist
parents: 244
diff changeset
32 LLValue* DtoStructEquals(TOK op, DValue* lhs, DValue* rhs);
e20ce6d8d374 [svn r365] Implemented raw struct equality comparison, uses C memcmp.
lindquist
parents: 244
diff changeset
33
705
5a2983f97498 Fixed weird struct problem from downs, see mini/compile_structs1.d
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 435
diff changeset
34 // index a struct one level
5a2983f97498 Fixed weird struct problem from downs, see mini/compile_structs1.d
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 435
diff changeset
35 LLValue* DtoIndexStruct(LLValue* src, StructDeclaration* sd, VarDeclaration* vd);
88
058d3925950e [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too.
lindquist
parents:
diff changeset
36
058d3925950e [svn r92] Fixed support for statically initialized unions. lots of bugfixes as cleanups too.
lindquist
parents:
diff changeset
37 #endif