Skip to content

Commit

Permalink
[objects] Remove uncached internal external string type
Browse files Browse the repository at this point in the history
We shouldn't be creating those anymore since they are not thread-safe.

Bug: v8:7790
Change-Id: I4546d995fa32eb076c8dfe9d95301fad719c9e07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615347
Reviewed-by: Ross McIlroy <[email protected]>
Reviewed-by: Leszek Swirski <[email protected]>
Commit-Queue: Santiago Aboy Solanes <[email protected]>
Cr-Commit-Position: refs/heads/master@{#72006}
  • Loading branch information
santiaboy authored and Commit Bot committed Jan 11, 2021
1 parent bfab480 commit b3d0900
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 126 deletions.
2 changes: 0 additions & 2 deletions src/compiler/types.cc
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,6 @@ Type::bitset BitsetType::Lub(const MapRefLike& map) {
return kString;
case EXTERNAL_INTERNALIZED_STRING_TYPE:
case EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE:
case UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE:
case UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE:
case INTERNALIZED_STRING_TYPE:
case ONE_BYTE_INTERNALIZED_STRING_TYPE:
return kInternalizedString;
Expand Down
2 changes: 0 additions & 2 deletions src/diagnostics/objects-printer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,6 @@ void HeapObject::HeapObjectPrint(std::ostream& os) { // NOLINT
case EXTERNAL_INTERNALIZED_STRING_TYPE:
case ONE_BYTE_INTERNALIZED_STRING_TYPE:
case EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE:
case UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE:
case UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE:
case STRING_TYPE:
case CONS_STRING_TYPE:
case EXTERNAL_STRING_TYPE:
Expand Down
14 changes: 5 additions & 9 deletions src/objects/instance-type.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,6 @@ enum InstanceType : uint16_t {
kTwoByteStringTag | kExternalStringTag | kInternalizedTag,
EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE =
kOneByteStringTag | kExternalStringTag | kInternalizedTag,
UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE =
EXTERNAL_INTERNALIZED_STRING_TYPE | kUncachedExternalStringTag |
kInternalizedTag,
UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE =
EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE | kUncachedExternalStringTag |
kInternalizedTag,
STRING_TYPE = INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
ONE_BYTE_STRING_TYPE =
ONE_BYTE_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
Expand All @@ -107,10 +101,12 @@ enum InstanceType : uint16_t {
EXTERNAL_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
EXTERNAL_ONE_BYTE_STRING_TYPE =
EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
UNCACHED_EXTERNAL_STRING_TYPE =
UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
UNCACHED_EXTERNAL_STRING_TYPE = kTwoByteStringTag | kExternalStringTag |
kUncachedExternalStringTag |
kNotInternalizedTag,
UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE =
UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
kOneByteStringTag | kExternalStringTag | kUncachedExternalStringTag |
kNotInternalizedTag,
THIN_STRING_TYPE = kTwoByteStringTag | kThinStringTag | kNotInternalizedTag,
THIN_ONE_BYTE_STRING_TYPE =
kOneByteStringTag | kThinStringTag | kNotInternalizedTag,
Expand Down
9 changes: 0 additions & 9 deletions src/objects/objects-definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@ namespace internal {
V(EXTERNAL_INTERNALIZED_STRING_TYPE) \
V(ONE_BYTE_INTERNALIZED_STRING_TYPE) \
V(EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \
V(UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE) \
V(UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE) \
V(STRING_TYPE) \
V(CONS_STRING_TYPE) \
V(EXTERNAL_STRING_TYPE) \
Expand Down Expand Up @@ -85,13 +83,6 @@ namespace internal {
external_internalized_string, ExternalInternalizedString) \
V(EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE, ExternalOneByteString::kSize, \
external_one_byte_internalized_string, ExternalOneByteInternalizedString) \
V(UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE, \
ExternalTwoByteString::kUncachedSize, \
uncached_external_internalized_string, UncachedExternalInternalizedString) \
V(UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE, \
ExternalOneByteString::kUncachedSize, \
uncached_external_one_byte_internalized_string, \
UncachedExternalOneByteInternalizedString) \
V(THIN_STRING_TYPE, ThinString::kSize, thin_string, ThinString) \
V(THIN_ONE_BYTE_STRING_TYPE, ThinString::kSize, thin_one_byte_string, \
ThinOneByteString)
Expand Down
4 changes: 0 additions & 4 deletions src/roots/roots.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,6 @@ class Symbol;
V(Map, external_internalized_string_map, ExternalInternalizedStringMap) \
V(Map, external_one_byte_internalized_string_map, \
ExternalOneByteInternalizedStringMap) \
V(Map, uncached_external_internalized_string_map, \
UncachedExternalInternalizedStringMap) \
V(Map, uncached_external_one_byte_internalized_string_map, \
UncachedExternalOneByteInternalizedStringMap) \
V(Map, uncached_external_one_byte_string_map, \
UncachedExternalOneByteStringMap) \
/* Oddball maps */ \
Expand Down
1 change: 0 additions & 1 deletion test/cctest/test-strings.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2142,7 +2142,6 @@ TEST(InternalizeExternalStringUncachedWithCopyTwoByte) {
CHECK(external->is_uncached());

// Internalize succesfully, with a copy.
CHECK(!external->IsInternalizedString());
Handle<String> internal = factory->InternalizeString(external);
CHECK(!external->IsInternalizedString());
CHECK(internal->IsInternalizedString());
Expand Down
2 changes: 0 additions & 2 deletions tools/heap-stats/categories.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ export const CATEGORIES = new Map([
'SYMBOL_TYPE',
'THIN_ONE_BYTE_STRING_TYPE',
'THIN_STRING_TYPE',
'UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE',
'UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE',
'UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE',
'UNCACHED_EXTERNAL_STRING_TYPE',
'WASM_INSTANCE_OBJECT_TYPE',
Expand Down
190 changes: 93 additions & 97 deletions tools/v8heapconst.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
2: "EXTERNAL_INTERNALIZED_STRING_TYPE",
8: "ONE_BYTE_INTERNALIZED_STRING_TYPE",
10: "EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE",
18: "UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE",
26: "UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE",
32: "STRING_TYPE",
33: "CONS_STRING_TYPE",
34: "EXTERNAL_STRING_TYPE",
Expand Down Expand Up @@ -298,75 +296,73 @@
("read_only_space", 0x03035): (0, "InternalizedStringMap"),
("read_only_space", 0x0305d): (2, "ExternalInternalizedStringMap"),
("read_only_space", 0x03085): (10, "ExternalOneByteInternalizedStringMap"),
("read_only_space", 0x030ad): (18, "UncachedExternalInternalizedStringMap"),
("read_only_space", 0x030d5): (26, "UncachedExternalOneByteInternalizedStringMap"),
("read_only_space", 0x030fd): (58, "UncachedExternalOneByteStringMap"),
("read_only_space", 0x03125): (67, "SelfReferenceMarkerMap"),
("read_only_space", 0x0314d): (67, "BasicBlockCountersMarkerMap"),
("read_only_space", 0x03191): (87, "ArrayBoilerplateDescriptionMap"),
("read_only_space", 0x03279): (99, "InterceptorInfoMap"),
("read_only_space", 0x053a5): (72, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x053cd): (73, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x053f5): (74, "CallableTaskMap"),
("read_only_space", 0x0541d): (75, "CallbackTaskMap"),
("read_only_space", 0x05445): (76, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x0546d): (79, "FunctionTemplateInfoMap"),
("read_only_space", 0x05495): (80, "ObjectTemplateInfoMap"),
("read_only_space", 0x054bd): (81, "AccessCheckInfoMap"),
("read_only_space", 0x054e5): (82, "AccessorInfoMap"),
("read_only_space", 0x0550d): (83, "AccessorPairMap"),
("read_only_space", 0x05535): (84, "AliasedArgumentsEntryMap"),
("read_only_space", 0x0555d): (85, "AllocationMementoMap"),
("read_only_space", 0x05585): (88, "AsmWasmDataMap"),
("read_only_space", 0x055ad): (89, "AsyncGeneratorRequestMap"),
("read_only_space", 0x055d5): (90, "BreakPointMap"),
("read_only_space", 0x055fd): (91, "BreakPointInfoMap"),
("read_only_space", 0x05625): (92, "CachedTemplateObjectMap"),
("read_only_space", 0x0564d): (94, "ClassPositionsMap"),
("read_only_space", 0x05675): (95, "DebugInfoMap"),
("read_only_space", 0x0569d): (98, "FunctionTemplateRareDataMap"),
("read_only_space", 0x056c5): (100, "InterpreterDataMap"),
("read_only_space", 0x056ed): (101, "ModuleRequestMap"),
("read_only_space", 0x05715): (102, "PromiseCapabilityMap"),
("read_only_space", 0x0573d): (103, "PromiseReactionMap"),
("read_only_space", 0x05765): (104, "PropertyDescriptorObjectMap"),
("read_only_space", 0x0578d): (105, "PrototypeInfoMap"),
("read_only_space", 0x057b5): (106, "ScriptMap"),
("read_only_space", 0x057dd): (107, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x05805): (108, "StackFrameInfoMap"),
("read_only_space", 0x0582d): (109, "StackTraceFrameMap"),
("read_only_space", 0x05855): (110, "TemplateObjectDescriptionMap"),
("read_only_space", 0x0587d): (111, "Tuple2Map"),
("read_only_space", 0x058a5): (112, "WasmExceptionTagMap"),
("read_only_space", 0x058cd): (113, "WasmExportedFunctionDataMap"),
("read_only_space", 0x058f5): (114, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x0591d): (115, "WasmJSFunctionDataMap"),
("read_only_space", 0x05945): (134, "SloppyArgumentsElementsMap"),
("read_only_space", 0x0596d): (151, "DescriptorArrayMap"),
("read_only_space", 0x05995): (156, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x059bd): (155, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x059e5): (171, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x05a0d): (180, "WasmCapiFunctionDataMap"),
("read_only_space", 0x05a35): (168, "InternalClassMap"),
("read_only_space", 0x05a5d): (177, "SmiPairMap"),
("read_only_space", 0x05a85): (176, "SmiBoxMap"),
("read_only_space", 0x05aad): (145, "ExportedSubClassBaseMap"),
("read_only_space", 0x05ad5): (146, "ExportedSubClassMap"),
("read_only_space", 0x05afd): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x05b25): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x05b4d): (133, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x05b75): (169, "InternalClassWithStructElementsMap"),
("read_only_space", 0x05b9d): (147, "ExportedSubClass2Map"),
("read_only_space", 0x05bc5): (178, "SortStateMap"),
("read_only_space", 0x05bed): (86, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x05c15): (86, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x05c3d): (77, "LoadHandler1Map"),
("read_only_space", 0x05c65): (77, "LoadHandler2Map"),
("read_only_space", 0x05c8d): (77, "LoadHandler3Map"),
("read_only_space", 0x05cb5): (78, "StoreHandler0Map"),
("read_only_space", 0x05cdd): (78, "StoreHandler1Map"),
("read_only_space", 0x05d05): (78, "StoreHandler2Map"),
("read_only_space", 0x05d2d): (78, "StoreHandler3Map"),
("read_only_space", 0x030ad): (58, "UncachedExternalOneByteStringMap"),
("read_only_space", 0x030d5): (67, "SelfReferenceMarkerMap"),
("read_only_space", 0x030fd): (67, "BasicBlockCountersMarkerMap"),
("read_only_space", 0x03141): (87, "ArrayBoilerplateDescriptionMap"),
("read_only_space", 0x03229): (99, "InterceptorInfoMap"),
("read_only_space", 0x05355): (72, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x0537d): (73, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x053a5): (74, "CallableTaskMap"),
("read_only_space", 0x053cd): (75, "CallbackTaskMap"),
("read_only_space", 0x053f5): (76, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x0541d): (79, "FunctionTemplateInfoMap"),
("read_only_space", 0x05445): (80, "ObjectTemplateInfoMap"),
("read_only_space", 0x0546d): (81, "AccessCheckInfoMap"),
("read_only_space", 0x05495): (82, "AccessorInfoMap"),
("read_only_space", 0x054bd): (83, "AccessorPairMap"),
("read_only_space", 0x054e5): (84, "AliasedArgumentsEntryMap"),
("read_only_space", 0x0550d): (85, "AllocationMementoMap"),
("read_only_space", 0x05535): (88, "AsmWasmDataMap"),
("read_only_space", 0x0555d): (89, "AsyncGeneratorRequestMap"),
("read_only_space", 0x05585): (90, "BreakPointMap"),
("read_only_space", 0x055ad): (91, "BreakPointInfoMap"),
("read_only_space", 0x055d5): (92, "CachedTemplateObjectMap"),
("read_only_space", 0x055fd): (94, "ClassPositionsMap"),
("read_only_space", 0x05625): (95, "DebugInfoMap"),
("read_only_space", 0x0564d): (98, "FunctionTemplateRareDataMap"),
("read_only_space", 0x05675): (100, "InterpreterDataMap"),
("read_only_space", 0x0569d): (101, "ModuleRequestMap"),
("read_only_space", 0x056c5): (102, "PromiseCapabilityMap"),
("read_only_space", 0x056ed): (103, "PromiseReactionMap"),
("read_only_space", 0x05715): (104, "PropertyDescriptorObjectMap"),
("read_only_space", 0x0573d): (105, "PrototypeInfoMap"),
("read_only_space", 0x05765): (106, "ScriptMap"),
("read_only_space", 0x0578d): (107, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x057b5): (108, "StackFrameInfoMap"),
("read_only_space", 0x057dd): (109, "StackTraceFrameMap"),
("read_only_space", 0x05805): (110, "TemplateObjectDescriptionMap"),
("read_only_space", 0x0582d): (111, "Tuple2Map"),
("read_only_space", 0x05855): (112, "WasmExceptionTagMap"),
("read_only_space", 0x0587d): (113, "WasmExportedFunctionDataMap"),
("read_only_space", 0x058a5): (114, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x058cd): (115, "WasmJSFunctionDataMap"),
("read_only_space", 0x058f5): (134, "SloppyArgumentsElementsMap"),
("read_only_space", 0x0591d): (151, "DescriptorArrayMap"),
("read_only_space", 0x05945): (156, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x0596d): (155, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x05995): (171, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x059bd): (180, "WasmCapiFunctionDataMap"),
("read_only_space", 0x059e5): (168, "InternalClassMap"),
("read_only_space", 0x05a0d): (177, "SmiPairMap"),
("read_only_space", 0x05a35): (176, "SmiBoxMap"),
("read_only_space", 0x05a5d): (145, "ExportedSubClassBaseMap"),
("read_only_space", 0x05a85): (146, "ExportedSubClassMap"),
("read_only_space", 0x05aad): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x05ad5): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x05afd): (133, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x05b25): (169, "InternalClassWithStructElementsMap"),
("read_only_space", 0x05b4d): (147, "ExportedSubClass2Map"),
("read_only_space", 0x05b75): (178, "SortStateMap"),
("read_only_space", 0x05b9d): (86, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x05bc5): (86, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x05bed): (77, "LoadHandler1Map"),
("read_only_space", 0x05c15): (77, "LoadHandler2Map"),
("read_only_space", 0x05c3d): (77, "LoadHandler3Map"),
("read_only_space", 0x05c65): (78, "StoreHandler0Map"),
("read_only_space", 0x05c8d): (78, "StoreHandler1Map"),
("read_only_space", 0x05cb5): (78, "StoreHandler2Map"),
("read_only_space", 0x05cdd): (78, "StoreHandler3Map"),
("map_space", 0x02115): (1057, "ExternalMap"),
("map_space", 0x0213d): (1084, "JSMessageObjectMap"),
("map_space", 0x02165): (181, "WasmRttEqrefMap"),
Expand Down Expand Up @@ -397,32 +393,32 @@
("read_only_space", 0x0282d): "TerminationException",
("read_only_space", 0x02895): "OptimizedOut",
("read_only_space", 0x028f5): "StaleRegister",
("read_only_space", 0x03175): "EmptyPropertyArray",
("read_only_space", 0x0317d): "EmptyByteArray",
("read_only_space", 0x03185): "EmptyObjectBoilerplateDescription",
("read_only_space", 0x031b9): "EmptyArrayBoilerplateDescription",
("read_only_space", 0x031c5): "EmptyClosureFeedbackCellArray",
("read_only_space", 0x031cd): "EmptySlowElementDictionary",
("read_only_space", 0x031f1): "EmptyOrderedHashMap",
("read_only_space", 0x03205): "EmptyOrderedHashSet",
("read_only_space", 0x03219): "EmptyFeedbackMetadata",
("read_only_space", 0x03225): "EmptyPropertyCell",
("read_only_space", 0x03239): "EmptyPropertyDictionary",
("read_only_space", 0x03261): "EmptyOrderedPropertyDictionary",
("read_only_space", 0x032a1): "NoOpInterceptorInfo",
("read_only_space", 0x032c9): "EmptyWeakArrayList",
("read_only_space", 0x032d5): "InfinityValue",
("read_only_space", 0x032e1): "MinusZeroValue",
("read_only_space", 0x032ed): "MinusInfinityValue",
("read_only_space", 0x032f9): "SelfReferenceMarker",
("read_only_space", 0x03339): "BasicBlockCountersMarker",
("read_only_space", 0x0337d): "OffHeapTrampolineRelocationInfo",
("read_only_space", 0x03389): "TrampolineTrivialCodeDataContainer",
("read_only_space", 0x03395): "TrampolinePromiseRejectionCodeDataContainer",
("read_only_space", 0x033a1): "GlobalThisBindingScopeInfo",
("read_only_space", 0x033d9): "EmptyFunctionScopeInfo",
("read_only_space", 0x03401): "NativeScopeInfo",
("read_only_space", 0x0341d): "HashSeed",
("read_only_space", 0x03125): "EmptyPropertyArray",
("read_only_space", 0x0312d): "EmptyByteArray",
("read_only_space", 0x03135): "EmptyObjectBoilerplateDescription",
("read_only_space", 0x03169): "EmptyArrayBoilerplateDescription",
("read_only_space", 0x03175): "EmptyClosureFeedbackCellArray",
("read_only_space", 0x0317d): "EmptySlowElementDictionary",
("read_only_space", 0x031a1): "EmptyOrderedHashMap",
("read_only_space", 0x031b5): "EmptyOrderedHashSet",
("read_only_space", 0x031c9): "EmptyFeedbackMetadata",
("read_only_space", 0x031d5): "EmptyPropertyCell",
("read_only_space", 0x031e9): "EmptyPropertyDictionary",
("read_only_space", 0x03211): "EmptyOrderedPropertyDictionary",
("read_only_space", 0x03251): "NoOpInterceptorInfo",
("read_only_space", 0x03279): "EmptyWeakArrayList",
("read_only_space", 0x03285): "InfinityValue",
("read_only_space", 0x03291): "MinusZeroValue",
("read_only_space", 0x0329d): "MinusInfinityValue",
("read_only_space", 0x032a9): "SelfReferenceMarker",
("read_only_space", 0x032e9): "BasicBlockCountersMarker",
("read_only_space", 0x0332d): "OffHeapTrampolineRelocationInfo",
("read_only_space", 0x03339): "TrampolineTrivialCodeDataContainer",
("read_only_space", 0x03345): "TrampolinePromiseRejectionCodeDataContainer",
("read_only_space", 0x03351): "GlobalThisBindingScopeInfo",
("read_only_space", 0x03389): "EmptyFunctionScopeInfo",
("read_only_space", 0x033b1): "NativeScopeInfo",
("read_only_space", 0x033cd): "HashSeed",
("old_space", 0x02115): "ArgumentsIteratorAccessor",
("old_space", 0x02159): "ArrayLengthAccessor",
("old_space", 0x0219d): "BoundFunctionLengthAccessor",
Expand Down

0 comments on commit b3d0900

Please sign in to comment.