Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: src/objects.h

Issue 2181623002: [heap] ObjectStats: Cleanup and more FIXED_ARRAY sub types (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/heap/object-stats.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/assert-scope.h" 10 #include "src/assert-scope.h"
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 769
770 #define FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(V) \ 770 #define FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(V) \
771 V(CODE_STUBS_TABLE_SUB_TYPE) \ 771 V(CODE_STUBS_TABLE_SUB_TYPE) \
772 V(CONTEXT_SUB_TYPE) \ 772 V(CONTEXT_SUB_TYPE) \
773 V(COPY_ON_WRITE_SUB_TYPE) \ 773 V(COPY_ON_WRITE_SUB_TYPE) \
774 V(DEOPTIMIZATION_DATA_SUB_TYPE) \ 774 V(DEOPTIMIZATION_DATA_SUB_TYPE) \
775 V(DESCRIPTOR_ARRAY_SUB_TYPE) \ 775 V(DESCRIPTOR_ARRAY_SUB_TYPE) \
776 V(EMBEDDED_OBJECT_SUB_TYPE) \ 776 V(EMBEDDED_OBJECT_SUB_TYPE) \
777 V(ENUM_CACHE_SUB_TYPE) \ 777 V(ENUM_CACHE_SUB_TYPE) \
778 V(ENUM_INDICES_CACHE_SUB_TYPE) \ 778 V(ENUM_INDICES_CACHE_SUB_TYPE) \
779 V(DEPENDENT_CODE_SUB_TYPE) \
779 V(DICTIONARY_ELEMENTS_SUB_TYPE) \ 780 V(DICTIONARY_ELEMENTS_SUB_TYPE) \
780 V(DICTIONARY_PROPERTIES_SUB_TYPE) \ 781 V(DICTIONARY_PROPERTIES_SUB_TYPE) \
782 V(EMPTY_PROPERTIES_DICTIONARY_SUB_TYPE) \
781 V(FAST_ELEMENTS_SUB_TYPE) \ 783 V(FAST_ELEMENTS_SUB_TYPE) \
782 V(FAST_PROPERTIES_SUB_TYPE) \ 784 V(FAST_PROPERTIES_SUB_TYPE) \
785 V(HANDLER_TABLE_SUB_TYPE) \
783 V(INTRINSIC_FUNCTION_NAMES_SUB_TYPE) \ 786 V(INTRINSIC_FUNCTION_NAMES_SUB_TYPE) \
787 V(JS_COLLECTION_SUB_TYPE) \
788 V(JS_WEAK_COLLECTION_SUB_TYPE) \
784 V(LITERALS_ARRAY_SUB_TYPE) \ 789 V(LITERALS_ARRAY_SUB_TYPE) \
785 V(MAP_CODE_CACHE_SUB_TYPE) \ 790 V(MAP_CODE_CACHE_SUB_TYPE) \
791 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \
786 V(NUMBER_STRING_CACHE_SUB_TYPE) \ 792 V(NUMBER_STRING_CACHE_SUB_TYPE) \
787 V(OBJECT_TO_CODE_SUB_TYPE) \ 793 V(OBJECT_TO_CODE_SUB_TYPE) \
794 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \
795 V(PROTOTYPE_USERS_SUB_TYPE) \
788 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \ 796 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \
797 V(RETAINED_MAPS_SUB_TYPE) \
789 V(SCOPE_INFO_SUB_TYPE) \ 798 V(SCOPE_INFO_SUB_TYPE) \
799 V(SCRIPT_LIST_SUB_TYPE) \
790 V(SERIALIZED_TEMPLATES_SUB_TYPE) \ 800 V(SERIALIZED_TEMPLATES_SUB_TYPE) \
791 V(SHARED_FUNCTION_INFOS_SUB_TYPE) \ 801 V(SHARED_FUNCTION_INFOS_SUB_TYPE) \
792 V(SINGLE_CHARACTER_STRING_CACHE_SUB_TYPE) \ 802 V(SINGLE_CHARACTER_STRING_CACHE_SUB_TYPE) \
793 V(STRING_SPLIT_CACHE_SUB_TYPE) \ 803 V(STRING_SPLIT_CACHE_SUB_TYPE) \
794 V(STRING_TABLE_SUB_TYPE) \ 804 V(STRING_TABLE_SUB_TYPE) \
795 V(TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \ 805 V(TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \
796 V(TYPE_FEEDBACK_VECTOR_SUB_TYPE) \ 806 V(TYPE_FEEDBACK_VECTOR_SUB_TYPE) \
797 V(TYPE_FEEDBACK_METADATA_SUB_TYPE) \ 807 V(TYPE_FEEDBACK_METADATA_SUB_TYPE) \
798 V(WEAK_COLLECTION_SUB_TYPE) \
799 V(WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE) 808 V(WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE)
800 809
801 enum FixedArraySubInstanceType { 810 enum FixedArraySubInstanceType {
802 #define DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE(name) name, 811 #define DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE(name) name,
803 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE) 812 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE)
804 #undef DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE 813 #undef DEFINE_FIXED_ARRAY_SUB_INSTANCE_TYPE
805 LAST_FIXED_ARRAY_SUB_TYPE = WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE 814 LAST_FIXED_ARRAY_SUB_TYPE = WEAK_NEW_SPACE_OBJECT_TO_CODE_SUB_TYPE
806 }; 815 };
807 816
808 817
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 V(SharedFunctionInfo) \ 977 V(SharedFunctionInfo) \
969 V(JSValue) \ 978 V(JSValue) \
970 V(JSDate) \ 979 V(JSDate) \
971 V(JSMessageObject) \ 980 V(JSMessageObject) \
972 V(StringWrapper) \ 981 V(StringWrapper) \
973 V(Foreign) \ 982 V(Foreign) \
974 V(Boolean) \ 983 V(Boolean) \
975 V(JSArray) \ 984 V(JSArray) \
976 V(JSArrayBuffer) \ 985 V(JSArrayBuffer) \
977 V(JSArrayBufferView) \ 986 V(JSArrayBufferView) \
987 V(JSCollection) \
978 V(JSTypedArray) \ 988 V(JSTypedArray) \
979 V(JSDataView) \ 989 V(JSDataView) \
980 V(JSProxy) \ 990 V(JSProxy) \
981 V(JSError) \ 991 V(JSError) \
982 V(JSPromise) \ 992 V(JSPromise) \
983 V(JSSet) \ 993 V(JSSet) \
984 V(JSMap) \ 994 V(JSMap) \
985 V(JSSetIterator) \ 995 V(JSSetIterator) \
986 V(JSMapIterator) \ 996 V(JSMapIterator) \
987 V(JSWeakCollection) \ 997 V(JSWeakCollection) \
(...skipping 4595 matching lines...) Expand 10 before | Expand all | Expand 10 after
5583 kInitialMapChangedGroup, 5593 kInitialMapChangedGroup,
5584 // Group of code that depends on tenuring information in AllocationSites 5594 // Group of code that depends on tenuring information in AllocationSites
5585 // not being changed. 5595 // not being changed.
5586 kAllocationSiteTenuringChangedGroup, 5596 kAllocationSiteTenuringChangedGroup,
5587 // Group of code that depends on element transition information in 5597 // Group of code that depends on element transition information in
5588 // AllocationSites not being changed. 5598 // AllocationSites not being changed.
5589 kAllocationSiteTransitionChangedGroup 5599 kAllocationSiteTransitionChangedGroup
5590 }; 5600 };
5591 5601
5592 static const int kGroupCount = kAllocationSiteTransitionChangedGroup + 1; 5602 static const int kGroupCount = kAllocationSiteTransitionChangedGroup + 1;
5603 static const int kNextLinkIndex = 0;
5604 static const int kFlagsIndex = 1;
5605 static const int kCodesStartIndex = 2;
5593 5606
5594 bool Contains(DependencyGroup group, WeakCell* code_cell); 5607 bool Contains(DependencyGroup group, WeakCell* code_cell);
5595 bool IsEmpty(DependencyGroup group); 5608 bool IsEmpty(DependencyGroup group);
5596 5609
5597 static Handle<DependentCode> InsertCompilationDependencies( 5610 static Handle<DependentCode> InsertCompilationDependencies(
5598 Handle<DependentCode> entries, DependencyGroup group, 5611 Handle<DependentCode> entries, DependencyGroup group,
5599 Handle<Foreign> info); 5612 Handle<Foreign> info);
5600 5613
5601 static Handle<DependentCode> InsertWeakCode(Handle<DependentCode> entries, 5614 static Handle<DependentCode> InsertWeakCode(Handle<DependentCode> entries,
5602 DependencyGroup group, 5615 DependencyGroup group,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5643 bool Compact(); 5656 bool Compact();
5644 static int Grow(int number_of_entries) { 5657 static int Grow(int number_of_entries) {
5645 if (number_of_entries < 5) return number_of_entries + 1; 5658 if (number_of_entries < 5) return number_of_entries + 1;
5646 return number_of_entries * 5 / 4; 5659 return number_of_entries * 5 / 4;
5647 } 5660 }
5648 inline int flags(); 5661 inline int flags();
5649 inline void set_flags(int flags); 5662 inline void set_flags(int flags);
5650 class GroupField : public BitField<int, 0, 3> {}; 5663 class GroupField : public BitField<int, 0, 3> {};
5651 class CountField : public BitField<int, 3, 27> {}; 5664 class CountField : public BitField<int, 3, 27> {};
5652 STATIC_ASSERT(kGroupCount <= GroupField::kMax + 1); 5665 STATIC_ASSERT(kGroupCount <= GroupField::kMax + 1);
5653 static const int kNextLinkIndex = 0;
5654 static const int kFlagsIndex = 1;
5655 static const int kCodesStartIndex = 2;
5656 }; 5666 };
5657 5667
5658 5668
5659 class PrototypeInfo; 5669 class PrototypeInfo;
5660 5670
5661 5671
5662 // All heap objects have a Map that describes their structure. 5672 // All heap objects have a Map that describes their structure.
5663 // A Map contains information about: 5673 // A Map contains information about:
5664 // - Size information about the object 5674 // - Size information about the object
5665 // - How to iterate over an object (for garbage collection) 5675 // - How to iterate over an object (for garbage collection)
(...skipping 5338 matching lines...) Expand 10 before | Expand all | Expand 10 after
11004 } 11014 }
11005 return value; 11015 return value;
11006 } 11016 }
11007 }; 11017 };
11008 11018
11009 11019
11010 } // NOLINT, false-positive due to second-order macros. 11020 } // NOLINT, false-positive due to second-order macros.
11011 } // NOLINT, false-positive due to second-order macros. 11021 } // NOLINT, false-positive due to second-order macros.
11012 11022
11013 #endif // V8_OBJECTS_H_ 11023 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/heap/object-stats.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698