From 4de4123fb15c2ac77e1de671f0d70dd2070e272c Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 13 Nov 2005 03:26:12 +0000 Subject: [PATCH] Shrink derived types by 8 bytes each by not having to have 2 vtables pointers 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 | 2 +- include/llvm/Type.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h index 179f44fbc07..e4b9136802a 100644 --- a/include/llvm/DerivedTypes.h +++ b/include/llvm/DerivedTypes.h @@ -31,7 +31,7 @@ class StructValType; class PointerValType; class PackedValType; -class DerivedType : public Type, public AbstractTypeUser { +class DerivedType : public Type { friend class Type; protected: diff --git a/include/llvm/Type.h b/include/llvm/Type.h index d69005865d2..68af106ffe4 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -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.