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