mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 18:24:23 +00:00
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
This commit is contained in:
@ -31,7 +31,7 @@ class StructValType;
|
|||||||
class PointerValType;
|
class PointerValType;
|
||||||
class PackedValType;
|
class PackedValType;
|
||||||
|
|
||||||
class DerivedType : public Type, public AbstractTypeUser {
|
class DerivedType : public Type {
|
||||||
friend class Type;
|
friend class Type;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -51,7 +51,7 @@ class StructType;
|
|||||||
class PackedType;
|
class PackedType;
|
||||||
class TypeMapBase;
|
class TypeMapBase;
|
||||||
|
|
||||||
class Type {
|
class Type : public AbstractTypeUser {
|
||||||
public:
|
public:
|
||||||
///===-------------------------------------------------------------------===//
|
///===-------------------------------------------------------------------===//
|
||||||
/// Definitions of all of the base types for the Type system. Based on this
|
/// 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.
|
/// their size is relatively uncommon, move this operation out of line.
|
||||||
bool isSizedDerivedType() const;
|
bool isSizedDerivedType() const;
|
||||||
|
|
||||||
|
virtual void refineAbstractType(const DerivedType *OldTy, const Type *NewTy);
|
||||||
|
virtual void typeBecameConcrete(const DerivedType *AbsTy);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// PromoteAbstractToConcrete - This is an internal method used to calculate
|
// PromoteAbstractToConcrete - This is an internal method used to calculate
|
||||||
// change "Abstract" from true to false when types are refined.
|
// change "Abstract" from true to false when types are refined.
|
||||||
|
Reference in New Issue
Block a user