Mercurial > projects > ldc
comparison gen/tollvm.h @ 94:61615fa85940 trunk
[svn r98] Added support for std.c.stdlib.alloca via pragma(LLVM_internal, "alloca").
Added support for array .sort and .reverse properties.
Fixed some bugs with pointer arithmetic.
Disabled some DMD AST optimizations that was messing things up, destroying valuable information.
Added a KDevelop project file, this is what I use for coding LLVMDC now :)
Other minor stuff.
author | lindquist |
---|---|
date | Mon, 12 Nov 2007 06:32:46 +0100 |
parents | 70d6113eeb8c |
children | ce7ed8f59b99 |
comparison
equal
deleted
inserted
replaced
93:08508eebbb3e | 94:61615fa85940 |
---|---|
32 | 32 |
33 void DtoCallClassDtors(TypeClass* tc, llvm::Value* instance); | 33 void DtoCallClassDtors(TypeClass* tc, llvm::Value* instance); |
34 void DtoInitClass(TypeClass* tc, llvm::Value* dst); | 34 void DtoInitClass(TypeClass* tc, llvm::Value* dst); |
35 | 35 |
36 llvm::Constant* DtoConstInitializer(Type* type, Initializer* init); | 36 llvm::Constant* DtoConstInitializer(Type* type, Initializer* init); |
37 DValue* DtoInitializer(Initializer* init, DValue* v); | 37 DValue* DtoInitializer(Initializer* init); |
38 | 38 |
39 llvm::Function* LLVM_DeclareMemSet32(); | 39 llvm::Function* LLVM_DeclareMemSet32(); |
40 llvm::Function* LLVM_DeclareMemSet64(); | 40 llvm::Function* LLVM_DeclareMemSet64(); |
41 llvm::Function* LLVM_DeclareMemCpy32(); | 41 llvm::Function* LLVM_DeclareMemCpy32(); |
42 llvm::Function* LLVM_DeclareMemCpy64(); | 42 llvm::Function* LLVM_DeclareMemCpy64(); |
47 llvm::Value* DtoGEPi(llvm::Value* ptr, unsigned i0, unsigned i1, const std::string& var, llvm::BasicBlock* bb=NULL); | 47 llvm::Value* DtoGEPi(llvm::Value* ptr, unsigned i0, unsigned i1, const std::string& var, llvm::BasicBlock* bb=NULL); |
48 | 48 |
49 llvm::Value* DtoRealloc(llvm::Value* ptr, const llvm::Type* ty); | 49 llvm::Value* DtoRealloc(llvm::Value* ptr, const llvm::Type* ty); |
50 llvm::Value* DtoRealloc(llvm::Value* ptr, llvm::Value* len); | 50 llvm::Value* DtoRealloc(llvm::Value* ptr, llvm::Value* len); |
51 | 51 |
52 void DtoAssert(llvm::Value* cond, llvm::Value* loc, llvm::Value* msg); | 52 void DtoAssert(llvm::Value* cond, Loc* loc, DValue* msg); |
53 | 53 |
54 llvm::Value* DtoArgument(const llvm::Type* paramtype, Argument* fnarg, Expression* argexp); | 54 llvm::Value* DtoArgument(const llvm::Type* paramtype, Argument* fnarg, Expression* argexp); |
55 | 55 |
56 llvm::Value* DtoNestedVariable(VarDeclaration* vd); | 56 llvm::Value* DtoNestedVariable(VarDeclaration* vd); |
57 | 57 |
73 bool DtoCanLoad(llvm::Value* ptr); | 73 bool DtoCanLoad(llvm::Value* ptr); |
74 llvm::Value* DtoLoad(llvm::Value* src); | 74 llvm::Value* DtoLoad(llvm::Value* src); |
75 void DtoStore(llvm::Value* src, llvm::Value* dst); | 75 void DtoStore(llvm::Value* src, llvm::Value* dst); |
76 llvm::Value* DtoBitCast(llvm::Value* v, const llvm::Type* t); | 76 llvm::Value* DtoBitCast(llvm::Value* v, const llvm::Type* t); |
77 | 77 |
78 // llvm::dyn_cast wrappers | |
79 const llvm::PointerType* isaPointer(llvm::Value* v); | |
80 const llvm::ArrayType* isaArray(llvm::Value* v); | |
81 const llvm::StructType* isaStruct(llvm::Value* v); | |
82 llvm::Constant* isaConstant(llvm::Value* v); | |
83 llvm::ConstantInt* isaConstantInt(llvm::Value* v); | |
84 | |
78 // basic operations | 85 // basic operations |
79 void DtoAssign(DValue* lhs, DValue* rhs); | 86 void DtoAssign(DValue* lhs, DValue* rhs); |
80 | 87 |
81 // binary operations | 88 // binary operations |
82 DValue* DtoBinAdd(DValue* lhs, DValue* rhs); | 89 DValue* DtoBinAdd(DValue* lhs, DValue* rhs); |