summaryrefslogtreecommitdiffstats
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
commitee8cd4e66d13f0448967bcec6b412b1381104422 (patch)
tree64cff606762b666571368e384e04eeef81ce8585
parent06b453b2dc99b920e44e23e3a6cb6d0b3823323f (diff)
downloadbcm5719-llvm-ee8cd4e66d13f0448967bcec6b412b1381104422.tar.gz
bcm5719-llvm-ee8cd4e66d13f0448967bcec6b412b1381104422.zip
Shrink derived types by 8 bytes each by not having to have 2 vtables pointers
and other MI overhead. llvm-svn: 24344
-rw-r--r--llvm/include/llvm/DerivedTypes.h2
-rw-r--r--llvm/include/llvm/Type.h5
2 files changed, 5 insertions, 2 deletions
diff --git a/llvm/include/llvm/DerivedTypes.h b/llvm/include/llvm/DerivedTypes.h
index 179f44fbc07..e4b9136802a 100644
--- a/llvm/include/llvm/DerivedTypes.h
+++ b/llvm/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/llvm/include/llvm/Type.h b/llvm/include/llvm/Type.h
index d69005865d2..68af106ffe4 100644
--- a/llvm/include/llvm/Type.h
+++ b/llvm/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.
OpenPOWER on IntegriCloud