Changes in directory llvm/include/llvm:
Constants.h updated: 1.104 -> 1.105 DerivedTypes.h updated: 1.72 -> 1.73 Type.h updated: 1.94 -> 1.95 --- Log message: Packed Structures --- Diffs of the changes: (+11 -3) Constants.h | 2 +- DerivedTypes.h | 7 +++++-- Type.h | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.104 llvm/include/llvm/Constants.h:1.105 --- llvm/include/llvm/Constants.h:1.104 Wed Dec 6 14:30:17 2006 +++ llvm/include/llvm/Constants.h Fri Dec 8 12:06:14 2006 @@ -370,7 +370,7 @@ /// get() - Static factory methods - Return objects of the specified value /// static Constant *get(const StructType *T, const std::vector<Constant*> &V); - static Constant *get(const std::vector<Constant*> &V); + static Constant *get(const std::vector<Constant*> &V, bool packed = false); /// getType() specialization - Reduce amount of casting... /// Index: llvm/include/llvm/DerivedTypes.h diff -u llvm/include/llvm/DerivedTypes.h:1.72 llvm/include/llvm/DerivedTypes.h:1.73 --- llvm/include/llvm/DerivedTypes.h:1.72 Tue Nov 14 21:02:41 2006 +++ llvm/include/llvm/DerivedTypes.h Fri Dec 8 12:06:14 2006 @@ -163,13 +163,14 @@ /// /// Private ctor - Only can be created by a static member... /// - StructType(const std::vector<const Type*> &Types); + StructType(const std::vector<const Type*> &Types, bool isPacked); public: /// StructType::get - This static method is the primary way to create a /// StructType. /// - static StructType *get(const std::vector<const Type*> &Params); + static StructType *get(const std::vector<const Type*> &Params, + bool isPacked=false); // Iterator access to the elements typedef std::vector<PATypeHandle>::const_iterator element_iterator; @@ -198,6 +199,8 @@ static inline bool classof(const Type *T) { return T->getTypeID() == StructTyID; } + + bool isPacked() const { return getSubclassData(); } }; Index: llvm/include/llvm/Type.h diff -u llvm/include/llvm/Type.h:1.94 llvm/include/llvm/Type.h:1.95 --- llvm/include/llvm/Type.h:1.94 Wed Dec 6 19:30:30 2006 +++ llvm/include/llvm/Type.h Fri Dec 8 12:06:14 2006 @@ -85,6 +85,7 @@ ArrayTyID , PointerTyID, // Array... pointer... OpaqueTyID, // Opaque type instances... PackedTyID, // SIMD 'packed' format... + BC_ONLY_PackedStructTyID, // packed struct, for BC rep only //... NumTypeIDs, // Must remain as last defined ID @@ -95,6 +96,7 @@ private: TypeID ID : 8; // The current base type of this type. bool Abstract : 1; // True if type contains an OpaqueType + bool SubclassData : 1; //Space for subclasses to store a flag /// RefCount - This counts the number of PATypeHolders that are pointing to /// this type. When this number falls to zero, if the type is abstract and @@ -117,6 +119,9 @@ unsigned getRefCount() const { return RefCount; } + bool getSubclassData() const { return SubclassData; } + void setSubclassData(bool b) { SubclassData = b; } + /// ForwardType - This field is used to implement the union find scheme for /// abstract types. When types are refined to other types, this field is set /// to the more refined type. Only abstract types can be forwarded. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits