Mercurial > projects > ldc
diff gen/tollvm.h @ 217:0806379a5eca trunk
[svn r233] Added: -oq command line option for writing fully qualified object names.
Added: started support for x86 80bit floating point.
Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for
using other attributes.
Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling!
Changed: performed other misc. cleanups.
Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0).
Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up
linking quite a bit.
author | lindquist |
---|---|
date | Thu, 05 Jun 2008 06:38:36 +0200 |
parents | 7816aafeea3c |
children | a95056b3c996 |
line wrap: on
line diff
--- a/gen/tollvm.h Tue Jun 03 22:32:59 2008 +0200 +++ b/gen/tollvm.h Thu Jun 05 06:38:36 2008 +0200 @@ -7,9 +7,12 @@ #include "attrib.h" #include "declaration.h" +#include "gen/structs.h" + // D->LLVM type handling stuff const LLType* DtoType(Type* t); bool DtoIsPassedByRef(Type* type); +bool DtoIsReturnedInArg(Type* type); // resolve typedefs to their real type. // TODO should probably be removed in favor of DMD's Type::toBasetype @@ -54,10 +57,10 @@ llvm::Function* LLVM_DeclareMemCpy64(); // getelementptr helpers -LLValue* DtoGEP(LLValue* ptr, LLValue* i0, LLValue* i1, const std::string& var, llvm::BasicBlock* bb=NULL); -LLValue* DtoGEP(LLValue* ptr, const std::vector<unsigned>& src, const std::string& var, llvm::BasicBlock* bb=NULL); -LLValue* DtoGEPi(LLValue* ptr, unsigned i0, const std::string& var, llvm::BasicBlock* bb=NULL); -LLValue* DtoGEPi(LLValue* ptr, unsigned i0, unsigned i1, const std::string& var, llvm::BasicBlock* bb=NULL); +LLValue* DtoGEP(LLValue* ptr, LLValue* i0, LLValue* i1, const char* var, llvm::BasicBlock* bb=NULL); +LLValue* DtoGEPi(LLValue* ptr, const DStructIndexVector& src, const char* var, llvm::BasicBlock* bb=NULL); +LLValue* DtoGEPi(LLValue* ptr, unsigned i0, const char* var, llvm::BasicBlock* bb=NULL); +LLValue* DtoGEPi(LLValue* ptr, unsigned i0, unsigned i1, const char* var, llvm::BasicBlock* bb=NULL); // dynamic memory helpers LLValue* DtoNew(Type* newtype);