[Differential] [Updated] D322: Refactor DeclarationId / Structure-pack most used types

kfunk (Kevin Funk) noreply at phabricator.kde.org
Tue Sep 8 19:36:32 UTC 2015


kfunk marked 4 inline comments as done.
kfunk added a comment.

Now pushed:

commit https://phabricator.kde.org/rKDEVPLATFORMe12636865ebc9c4f60d893bdeecb30a687ce10aa
Author: Kevin Funk <kfunk at kde.org>
Date:   Thu Sep 3 00:03:57 2015 +0200

  language: Structure-pack most used types
  
  Make use of C++11 typed-enums and C++11 unions
  
  sizeof-statistics (64 bit system):
  - DUChainBaseData: 24B -> 20B
  - AbstractTypeData: 32B -> 12B
  - DelayedTypeData: 40B -> 24B
  - DeclarationData: 76B -> 60B
  - DUContextData: 64B -> 56B
  - TopDUContextData: 96B -> 80B (not instantiated *that* often)
  
  Differential Revision: https://phabricator.kde.org/D322

commit https://phabricator.kde.org/rKDEVPLATFORM730cb3923e22557b80a461d86a212ee41a5eeb91
Author: Kevin Funk <kfunk at kde.org>
Date:   Thu Sep 3 00:02:56 2015 +0200

  Refactor DeclarationId
  
  Make use C++11 union (saves around 8 bytes per instance)
  
  Differential Revision: https://phabricator.kde.org/D322


INLINE COMMENTS
  language/duchain/types/abstracttype.h:133 Sure, I checked. LanguageSpecificModifier is never used outside of kdevplatform afaics.
  
  Each module calling AbstractType::setModifiers just reuses the common modifiers apparently. No need to extend to 64 bit at all, IMO (still plenty of space left now)
  language/duchain/types/typesystemdata.h:78 See above; I didn't see a place where any custom modifiers were used. Checked with ack / LXR. No uses of LanguageSpecificModifier (which would be required) at all.

REPOSITORY
  rKDEVPLATFORM KDevPlatform

REVISION DETAIL
  https://phabricator.kde.org/D322

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: kfunk
Cc: mwolff, kdevelop-devel, arrowdodger, obogdan, kfunk


More information about the KDevelop-devel mailing list