Mercurial > projects > ldc
annotate gen/arrays.h @ 468:45a67b6f1310
Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially
in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Mon, 04 Aug 2008 02:59:34 +0200 |
parents | 76078c8ab5b9 |
children | e6bcc4d9e5ff |
rev | line source |
---|---|
4
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
diff
changeset
|
1 #ifndef LLVMC_GEN_ARRAYS_H |
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
diff
changeset
|
2 #define LLVMC_GEN_ARRAYS_H |
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
diff
changeset
|
3 |
86
fd32135dca3e
[svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
lindquist
parents:
81
diff
changeset
|
4 struct DSliceValue; |
fd32135dca3e
[svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
lindquist
parents:
81
diff
changeset
|
5 |
234
9760f54af0b7
[svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing.
lindquist
parents:
213
diff
changeset
|
6 const llvm::StructType* DtoArrayType(Type* arrayTy); |
9760f54af0b7
[svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing.
lindquist
parents:
213
diff
changeset
|
7 const llvm::StructType* DtoArrayType(const LLType* elemTy); |
9760f54af0b7
[svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing.
lindquist
parents:
213
diff
changeset
|
8 const llvm::ArrayType* DtoStaticArrayType(Type* sarrayTy); |
4
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
diff
changeset
|
9 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
10 LLConstant* DtoConstArrayInitializer(ArrayInitializer* si); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
11 LLConstant* DtoConstSlice(LLConstant* dim, LLConstant* ptr); |
244
a95056b3c996
[svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents:
234
diff
changeset
|
12 LLConstant* DtoConstStaticArray(const LLType* t, LLConstant* c); |
34 | 13 |
108
288fe1029e1f
[svn r112] Fixed 'case 1,2,3:' style case statements.
lindquist
parents:
102
diff
changeset
|
14 void DtoArrayCopySlices(DSliceValue* dst, DSliceValue* src); |
288fe1029e1f
[svn r112] Fixed 'case 1,2,3:' style case statements.
lindquist
parents:
102
diff
changeset
|
15 void DtoArrayCopyToSlice(DSliceValue* dst, DValue* src); |
86
fd32135dca3e
[svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
lindquist
parents:
81
diff
changeset
|
16 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
308
diff
changeset
|
17 void DtoArrayInit(Loc& loc, DValue* array, DValue* value); |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
18 void DtoArrayAssign(LLValue* l, LLValue* r); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
19 void DtoSetArray(LLValue* arr, LLValue* dim, LLValue* ptr); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
20 void DtoSetArrayToNull(LLValue* v); |
4
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
diff
changeset
|
21 |
203
e881c9b1c738
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
lindquist
parents:
132
diff
changeset
|
22 DSliceValue* DtoNewDynArray(Type* arrayType, DValue* dim, bool defaultInit=true); |
286
a3b7c19c866c
[svn r307] Fixed: multidimensional new expressions now work. Eg.:
lindquist
parents:
244
diff
changeset
|
23 DSliceValue* DtoNewMulDimDynArray(Type* arrayType, DValue** dims, size_t ndims, bool defaultInit=true); |
203
e881c9b1c738
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
lindquist
parents:
132
diff
changeset
|
24 DSliceValue* DtoResizeDynArray(Type* arrayType, DValue* array, DValue* newdim); |
21
8d45266bbabe
[svn r25] * Fixed a lot of problems with string literals
lindquist
parents:
11
diff
changeset
|
25 |
203
e881c9b1c738
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
lindquist
parents:
132
diff
changeset
|
26 DSliceValue* DtoCatAssignElement(DValue* arr, Expression* exp); |
e881c9b1c738
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
lindquist
parents:
132
diff
changeset
|
27 DSliceValue* DtoCatAssignArray(DValue* arr, Expression* exp); |
e881c9b1c738
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
lindquist
parents:
132
diff
changeset
|
28 DSliceValue* DtoCatArrays(Type* type, Expression* e1, Expression* e2); |
e881c9b1c738
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
lindquist
parents:
132
diff
changeset
|
29 DSliceValue* DtoCatArrayElement(Type* type, Expression* exp1, Expression* exp2); |
40 | 30 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
31 void DtoStaticArrayCopy(LLValue* dst, LLValue* src); |
52 | 32 |
424
c8d98ccad0cc
Error if static array is cast to an array such that oldarraysize % newelemsize != 0.
Christian Kamm <kamm incasoftware de>
parents:
399
diff
changeset
|
33 LLValue* DtoArrayEquals(Loc& loc, TOK op, DValue* l, DValue* r); |
c8d98ccad0cc
Error if static array is cast to an array such that oldarraysize % newelemsize != 0.
Christian Kamm <kamm incasoftware de>
parents:
399
diff
changeset
|
34 LLValue* DtoArrayCompare(Loc& loc, TOK op, DValue* l, DValue* r); |
54
28e99b04a132
[svn r58] Fixed cond expression resulting in a non-basic type.
lindquist
parents:
52
diff
changeset
|
35 |
308
6b62e8cdf970
[svn r329] Cleaned up a bunch of array code for handling special slice cases no
lindquist
parents:
295
diff
changeset
|
36 LLValue* DtoDynArrayIs(TOK op, DValue* l, DValue* r); |
52 | 37 |
244
a95056b3c996
[svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents:
234
diff
changeset
|
38 LLValue* DtoArrayCastLength(LLValue* len, const LLType* elemty, const LLType* newelemty); |
40 | 39 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
40 LLValue* DtoArrayLen(DValue* v); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
203
diff
changeset
|
41 LLValue* DtoArrayPtr(DValue* v); |
86
fd32135dca3e
[svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
lindquist
parents:
81
diff
changeset
|
42 |
424
c8d98ccad0cc
Error if static array is cast to an array such that oldarraysize % newelemsize != 0.
Christian Kamm <kamm incasoftware de>
parents:
399
diff
changeset
|
43 DValue* DtoCastArray(Loc& loc, DValue* val, Type* to); |
102
027b8d8b71ec
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents:
99
diff
changeset
|
44 |
442
76078c8ab5b9
Move DtoArrayBoundsCheck from llvmhelpers to arrays.
Christian Kamm <kamm incasoftware de>
parents:
424
diff
changeset
|
45 // generates an array bounds check |
76078c8ab5b9
Move DtoArrayBoundsCheck from llvmhelpers to arrays.
Christian Kamm <kamm incasoftware de>
parents:
424
diff
changeset
|
46 void DtoArrayBoundsCheck(Loc& loc, DValue* arr, DValue* index, bool isslice); |
76078c8ab5b9
Move DtoArrayBoundsCheck from llvmhelpers to arrays.
Christian Kamm <kamm incasoftware de>
parents:
424
diff
changeset
|
47 |
4
e116aa1488e6
[svn r8] changed backend includes to always use the gen/<foo>.h prefix
lindquist
parents:
diff
changeset
|
48 #endif // LLVMC_GEN_ARRAYS_H |