Bug 903519 - Separate out AllocKinds for nursery-allocatable strings, r=jonco
☠☠ backed out by 65e92478e09d ☠ ☠
authorSteve Fink <sfink@mozilla.com>
Mon, 13 Nov 2017 16:57:17 -0800
changeset 450633 9316d8f7b92ad2746505218b30fb8acd376e6edd
parent 450613 6705010893cd6d0a72f6adbcb81a92f052a041c2
child 450634 1fc5ee0d0116300963a2490fb485207eaa9ada02
push id8531
push userryanvm@gmail.com
push dateFri, 12 Jan 2018 16:47:01 +0000
treeherdermozilla-beta@0bc627ade5a0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjonco
bugs903519
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 903519 - Separate out AllocKinds for nursery-allocatable strings, r=jonco
js/src/gc/AllocKind.h
--- a/js/src/gc/AllocKind.h
+++ b/js/src/gc/AllocKind.h
@@ -46,35 +46,41 @@ namespace gc {
     D(OBJECT4_BACKGROUND,  Object,       JSObject,          JSObject_Slots4,   true,   true)  \
     D(OBJECT8,             Object,       JSObject,          JSObject_Slots8,   false,  false) \
     D(OBJECT8_BACKGROUND,  Object,       JSObject,          JSObject_Slots8,   true,   true)  \
     D(OBJECT12,            Object,       JSObject,          JSObject_Slots12,  false,  false) \
     D(OBJECT12_BACKGROUND, Object,       JSObject,          JSObject_Slots12,  true,   true)  \
     D(OBJECT16,            Object,       JSObject,          JSObject_Slots16,  false,  false) \
     D(OBJECT16_BACKGROUND, Object,       JSObject,          JSObject_Slots16,  true,   true)
 
-#define FOR_EACH_NONOBJECT_ALLOCKIND(D) \
+#define FOR_EACH_NONOBJECT_NONNURSERY_ALLOCKIND(D) \
  /* AllocKind              TraceKind     TypeName           SizedType          BGFinal Nursery */ \
     D(SCRIPT,              Script,       JSScript,          JSScript,          false,  false) \
     D(LAZY_SCRIPT,         LazyScript,   js::LazyScript,    js::LazyScript,    true,   false) \
     D(SHAPE,               Shape,        js::Shape,         js::Shape,         true,   false) \
     D(ACCESSOR_SHAPE,      Shape,        js::AccessorShape, js::AccessorShape, true,   false) \
     D(BASE_SHAPE,          BaseShape,    js::BaseShape,     js::BaseShape,     true,   false) \
     D(OBJECT_GROUP,        ObjectGroup,  js::ObjectGroup,   js::ObjectGroup,   true,   false) \
-    D(FAT_INLINE_STRING,   String,       JSFatInlineString, JSFatInlineString, true,   false) \
-    D(STRING,              String,       JSString,          JSString,          true,   false) \
     D(EXTERNAL_STRING,     String,       JSExternalString,  JSExternalString,  true,   false) \
     D(FAT_INLINE_ATOM,     String,       js::FatInlineAtom, js::FatInlineAtom, true,   false) \
     D(ATOM,                String,       js::NormalAtom,    js::NormalAtom,    true,   false) \
     D(SYMBOL,              Symbol,       JS::Symbol,        JS::Symbol,        true,   false) \
     D(JITCODE,             JitCode,      js::jit::JitCode,  js::jit::JitCode,  false,  false) \
     D(SCOPE,               Scope,        js::Scope,         js::Scope,         true,   false) \
     D(REGEXP_SHARED,       RegExpShared, js::RegExpShared,  js::RegExpShared,  true,   false)
 
-#define FOR_EACH_ALLOCKIND(D) \
+#define FOR_EACH_NURSERY_STRING_ALLOCKIND(D) \
+    D(FAT_INLINE_STRING,   String,        JSFatInlineString, JSFatInlineString, true,   true) \
+    D(STRING,              String,        JSString,          JSString,          true,   true)
+
+#define FOR_EACH_NONOBJECT_ALLOCKIND(D) \
+    FOR_EACH_NONOBJECT_NONNURSERY_ALLOCKIND(D) \
+    FOR_EACH_NURSERY_STRING_ALLOCKIND(D)
+
+#define FOR_EACH_ALLOCKIND(D)    \
     FOR_EACH_OBJECT_ALLOCKIND(D) \
     FOR_EACH_NONOBJECT_ALLOCKIND(D)
 
 enum class AllocKind : uint8_t {
 #define DEFINE_ALLOC_KIND(allocKind, _1, _2, _3, _4, _5) allocKind,
 
     FOR_EACH_OBJECT_ALLOCKIND(DEFINE_ALLOC_KIND)