forked from OSchip/llvm-project
Shrink derived types by 8 bytes each by not having to have 2 vtables pointers
and other MI overhead. llvm-svn: 24344
This commit is contained in:
parent
06b453b2dc
commit
ee8cd4e66d
|
@ -31,7 +31,7 @@ class StructValType;
|
|||
class PointerValType;
|
||||
class PackedValType;
|
||||
|
||||
class DerivedType : public Type, public AbstractTypeUser {
|
||||
class DerivedType : public Type {
|
||||
friend class Type;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue