diff gen/structs.h @ 213:7816aafeea3c trunk

[svn r229] Updated the object.d implementation to the latest Tango. Fixed a bunch of the built-in typeinfos for arrays, they did not inherit TypeInfo_Array. Applied patch to tango/text/convert/Layout.d by fvbommel, closes #47 . Cleaned up some type code. Replaced uses of llvm::Type with LLType (a typedef), same for Value and Constant. Fixed a few cases where typeinfo for user structs could be emitted multiple times, seems to still be some cases of this :/
author lindquist
date Fri, 30 May 2008 19:32:04 +0200
parents 027b8d8b71ec
children 0806379a5eca
line wrap: on
line diff
--- a/gen/structs.h	Tue May 27 22:14:24 2008 +0200
+++ b/gen/structs.h	Fri May 30 19:32:04 2008 +0200
@@ -3,12 +3,12 @@
 
 struct StructInitializer;
 
-const llvm::Type* DtoStructType(Type* t);
+const LLType* DtoStructType(Type* t);
 
-llvm::Value* DtoStructZeroInit(llvm::Value* v);
-llvm::Value* DtoStructCopy(llvm::Value* dst, llvm::Value* src);
+LLValue* DtoStructZeroInit(LLValue* v);
+LLValue* DtoStructCopy(LLValue* dst, LLValue* src);
 
-llvm::Constant* DtoConstStructInitializer(StructInitializer* si);
+LLConstant* DtoConstStructInitializer(StructInitializer* si);
 
 /**
  * Resolves the llvm type for a struct
@@ -30,14 +30,14 @@
  */
 void DtoDefineStruct(StructDeclaration* sd);
 
-llvm::Value* DtoIndexStruct(llvm::Value* ptr, StructDeclaration* sd, Type* t, unsigned os, std::vector<unsigned>& idxs);
+LLValue* DtoIndexStruct(LLValue* ptr, StructDeclaration* sd, Type* t, unsigned os, std::vector<unsigned>& idxs);
 
 struct DUnionField
 {
     unsigned offset;
     size_t size;
-    std::vector<const llvm::Type*> types;
-    llvm::Constant* init;
+    std::vector<const LLType*> types;
+    LLConstant* init;
     size_t initsize;
 
     DUnionField() {
@@ -51,11 +51,11 @@
 struct DUnionIdx
 {
     unsigned idx,idxos;
-    llvm::Constant* c;
+    LLConstant* c;
 
     DUnionIdx()
     : idx(0), c(0) {}
-    DUnionIdx(unsigned _idx, unsigned _idxos, llvm::Constant* _c)
+    DUnionIdx(unsigned _idx, unsigned _idxos, LLConstant* _c)
     : idx(_idx), idxos(_idxos), c(_c) {}
     bool operator<(const DUnionIdx& i) const {
         return (idx < i.idx) || (idx == i.idx && idxos < i.idxos);
@@ -67,7 +67,7 @@
     std::vector<DUnionField> fields;
 public:
     DUnion();
-    llvm::Constant* getConst(std::vector<DUnionIdx>& in);
+    LLConstant* getConst(std::vector<DUnionIdx>& in);
 };
 
 #endif