summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-11-13 03:26:12 +0000
committerChris Lattner <sabre@nondot.org>2005-11-13 03:26:12 +0000
commit4de4123fb15c2ac77e1de671f0d70dd2070e272c (patch)
tree609369991fd313706247f6aaaeb6a671c97c08b1 /include
parentcfe822728fe2ce1d53a07018f160f010fd133aad (diff)
downloadllvm-4de4123fb15c2ac77e1de671f0d70dd2070e272c.tar.gz
llvm-4de4123fb15c2ac77e1de671f0d70dd2070e272c.tar.bz2
llvm-4de4123fb15c2ac77e1de671f0d70dd2070e272c.tar.xz
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
Diffstat (limited to 'include')
-rw-r--r--include/llvm/DerivedTypes.h2
-rw-r--r--include/llvm/Type.h5
2 files changed, 5 insertions, 2 deletions
diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h
index 179f44fbc0..e4b9136802 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 d69005865d..68af106ffe 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.