Mercurial > projects > ldc
comparison gen/arrays.h @ 86:fd32135dca3e trunk
[svn r90] Major updates to the gen directory. Redesigned the 'elem' struct. Much more... !!!
Lots of bugfixes.
Added support for special foreach on strings.
Added std.array, std.utf, std.ctype and std.uni to phobos.
Changed all the .c files in the gen dir to .cpp (it *is* C++ after all)
author | lindquist |
---|---|
date | Sat, 03 Nov 2007 14:44:58 +0100 |
parents | 3587401b6eeb |
children | 6789050b5ad1 |
comparison
equal
deleted
inserted
replaced
85:f869c636a113 | 86:fd32135dca3e |
---|---|
1 #ifndef LLVMC_GEN_ARRAYS_H | 1 #ifndef LLVMC_GEN_ARRAYS_H |
2 #define LLVMC_GEN_ARRAYS_H | 2 #define LLVMC_GEN_ARRAYS_H |
3 | |
4 struct DSliceValue; | |
3 | 5 |
4 const llvm::StructType* DtoArrayType(Type* t); | 6 const llvm::StructType* DtoArrayType(Type* t); |
5 const llvm::ArrayType* DtoStaticArrayType(Type* t); | 7 const llvm::ArrayType* DtoStaticArrayType(Type* t); |
6 | 8 |
7 llvm::Constant* DtoConstArrayInitializer(ArrayInitializer* si); | 9 llvm::Constant* DtoConstArrayInitializer(ArrayInitializer* si); |
8 llvm::Constant* DtoConstSlice(llvm::Constant* dim, llvm::Constant* ptr); | 10 llvm::Constant* DtoConstSlice(llvm::Constant* dim, llvm::Constant* ptr); |
9 llvm::Constant* DtoConstStaticArray(const llvm::Type* t, llvm::Constant* c); | 11 llvm::Constant* DtoConstStaticArray(const llvm::Type* t, llvm::Constant* c); |
10 | 12 |
11 void DtoArrayCopy(elem* dst, elem* src); | 13 void DtoArrayCopy(DSliceValue* dst, DSliceValue* src); |
14 | |
12 void DtoArrayInit(llvm::Value* l, llvm::Value* r); | 15 void DtoArrayInit(llvm::Value* l, llvm::Value* r); |
13 void DtoArrayInit(llvm::Value* ptr, llvm::Value* dim, llvm::Value* val); | 16 void DtoArrayInit(llvm::Value* ptr, llvm::Value* dim, llvm::Value* val); |
14 void DtoArrayAssign(llvm::Value* l, llvm::Value* r); | 17 void DtoArrayAssign(llvm::Value* l, llvm::Value* r); |
15 void DtoSetArray(llvm::Value* arr, llvm::Value* dim, llvm::Value* ptr); | 18 void DtoSetArray(llvm::Value* arr, llvm::Value* dim, llvm::Value* ptr); |
16 void DtoNullArray(llvm::Value* v); | 19 void DtoNullArray(llvm::Value* v); |
17 | 20 |
18 llvm::Value* DtoNewDynArray(llvm::Value* dst, llvm::Value* dim, Type* dty, bool doinit=true); | 21 llvm::Value* DtoNewDynArray(llvm::Value* dst, llvm::Value* dim, Type* dty, bool doinit=true); |
19 void DtoResizeDynArray(llvm::Value* arr, llvm::Value* sz); | 22 llvm::Value* DtoResizeDynArray(llvm::Value* arr, llvm::Value* sz); |
20 | 23 |
21 void DtoCatAssignElement(llvm::Value* arr, Expression* exp); | 24 void DtoCatAssignElement(llvm::Value* arr, Expression* exp); |
25 void DtoCatAssignArray(llvm::Value* arr, Expression* exp); | |
22 void DtoCatArrays(llvm::Value* arr, Expression* e1, Expression* e2); | 26 void DtoCatArrays(llvm::Value* arr, Expression* e1, Expression* e2); |
23 | 27 |
24 void DtoStaticArrayCopy(llvm::Value* dst, llvm::Value* src); | 28 void DtoStaticArrayCopy(llvm::Value* dst, llvm::Value* src); |
25 | 29 |
26 llvm::Value* DtoStaticArrayCompare(TOK op, llvm::Value* l, llvm::Value* r); | 30 llvm::Value* DtoStaticArrayCompare(TOK op, llvm::Value* l, llvm::Value* r); |
28 llvm::Value* DtoDynArrayCompare(TOK op, llvm::Value* l, llvm::Value* r); | 32 llvm::Value* DtoDynArrayCompare(TOK op, llvm::Value* l, llvm::Value* r); |
29 llvm::Value* DtoDynArrayIs(TOK op, llvm::Value* l, llvm::Value* r); | 33 llvm::Value* DtoDynArrayIs(TOK op, llvm::Value* l, llvm::Value* r); |
30 | 34 |
31 llvm::Value* DtoArrayCastLength(llvm::Value* len, const llvm::Type* elemty, const llvm::Type* newelemty); | 35 llvm::Value* DtoArrayCastLength(llvm::Value* len, const llvm::Type* elemty, const llvm::Type* newelemty); |
32 | 36 |
37 llvm::Value* DtoArrayLen(DValue* v); | |
38 llvm::Value* DtoArrayPtr(DValue* v); | |
39 | |
33 #endif // LLVMC_GEN_ARRAYS_H | 40 #endif // LLVMC_GEN_ARRAYS_H |