Shrink derived types by 8 bytes each by not having to have 2 vtables pointers
authorChris Lattner <sabre@nondot.org>
Sun, 13 Nov 2005 03:26:12 +0000 (03:26 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 13 Nov 2005 03:26:12 +0000 (03:26 +0000)
and other MI overhead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24344 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/DerivedTypes.h
include/llvm/Type.h

index 179f44fbc07bd861e12218ad47692a6f406ab141..e4b9136802a3ff20e57acd30bce74276d70b9a1e 100644 (file)
@@ -31,7 +31,7 @@ class StructValType;
 class PointerValType;
 class PackedValType;
 
-class DerivedType : public Type, public AbstractTypeUser {
+class DerivedType : public Type {
   friend class Type;
 
 protected:
index d69005865d234e977ce13753eea8dd67b467747a..68af106ffe43ff689d45ab768c299609d7c77090 100644 (file)
@@ -51,7 +51,7 @@ class StructType;
 class PackedType;
 class TypeMapBase;
 
-class Type {
+class Type : public AbstractTypeUser {
 public:
   ///===-------------------------------------------------------------------===//
   /// Definitions of all of the base types for the Type system.  Based on this
@@ -341,6 +341,9 @@ private:
   /// their size is relatively uncommon, move this operation out of line.
   bool isSizedDerivedType() const;
 
+  virtual void refineAbstractType(const DerivedType *OldTy, const Type *NewTy);
+  virtual void typeBecameConcrete(const DerivedType *AbsTy);
+
 protected:
   // PromoteAbstractToConcrete - This is an internal method used to calculate
   // change "Abstract" from true to false when types are refined.