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);