Title: [252421] trunk/Source/_javascript_Core
Revision
252421
Author
[email protected]
Date
2019-11-13 11:40:11 -0800 (Wed, 13 Nov 2019)

Log Message

[JSC] Put more into IsoSubspace part 2
https://bugs.webkit.org/show_bug.cgi?id=204144

Reviewed by Mark Lam.

We are doing this step by step to carefully watch the bot status.
This patch puts following things into IsoSubspace.

    1. FunctionRareData
    2. ProxyObject
    3. SparseArrayValueMap

* runtime/FunctionRareData.h:
* runtime/ProxyObject.h:
* runtime/SparseArrayValueMap.h:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (252420 => 252421)


--- trunk/Source/_javascript_Core/ChangeLog	2019-11-13 19:36:39 UTC (rev 252420)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-11-13 19:40:11 UTC (rev 252421)
@@ -1,5 +1,26 @@
 2019-11-13  Yusuke Suzuki  <[email protected]>
 
+        [JSC] Put more into IsoSubspace part 2
+        https://bugs.webkit.org/show_bug.cgi?id=204144
+
+        Reviewed by Mark Lam.
+
+        We are doing this step by step to carefully watch the bot status.
+        This patch puts following things into IsoSubspace.
+
+            1. FunctionRareData
+            2. ProxyObject
+            3. SparseArrayValueMap
+
+        * runtime/FunctionRareData.h:
+        * runtime/ProxyObject.h:
+        * runtime/SparseArrayValueMap.h:
+        * runtime/VM.cpp:
+        (JSC::VM::VM):
+        * runtime/VM.h:
+
+2019-11-13  Yusuke Suzuki  <[email protected]>
+
         [JSC] AI should convert IsCellWithType to constant when Structure set is finite
         https://bugs.webkit.org/show_bug.cgi?id=204141
 

Modified: trunk/Source/_javascript_Core/runtime/FunctionRareData.h (252420 => 252421)


--- trunk/Source/_javascript_Core/runtime/FunctionRareData.h	2019-11-13 19:36:39 UTC (rev 252420)
+++ trunk/Source/_javascript_Core/runtime/FunctionRareData.h	2019-11-13 19:40:11 UTC (rev 252421)
@@ -53,6 +53,13 @@
     static FunctionRareData* create(VM&, JSFunction*);
 
     static constexpr bool needsDestruction = true;
+
+    template<typename CellType, SubspaceAccess mode>
+    static IsoSubspace* subspaceFor(VM& vm)
+    {
+        return vm.functionRareDataSpace<mode>();
+    }
+
     static void destroy(JSCell*);
 
     static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype);

Modified: trunk/Source/_javascript_Core/runtime/ProxyObject.h (252420 => 252421)


--- trunk/Source/_javascript_Core/runtime/ProxyObject.h	2019-11-13 19:36:39 UTC (rev 252420)
+++ trunk/Source/_javascript_Core/runtime/ProxyObject.h	2019-11-13 19:40:11 UTC (rev 252421)
@@ -36,6 +36,12 @@
 
     static constexpr unsigned StructureFlags = Base::StructureFlags | OverridesGetOwnPropertySlot | OverridesGetCallData | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | OverridesGetPropertyNames | ProhibitsPropertyCaching;
 
+    template<typename CellType, SubspaceAccess mode>
+    static IsoSubspace* subspaceFor(VM& vm)
+    {
+        return vm.proxyObjectSpace<mode>();
+    }
+
     static ProxyObject* create(JSGlobalObject* globalObject, JSValue target, JSValue handler)
     {
         VM& vm = getVM(globalObject);

Modified: trunk/Source/_javascript_Core/runtime/SparseArrayValueMap.h (252420 => 252421)


--- trunk/Source/_javascript_Core/runtime/SparseArrayValueMap.h	2019-11-13 19:36:39 UTC (rev 252420)
+++ trunk/Source/_javascript_Core/runtime/SparseArrayValueMap.h	2019-11-13 19:40:11 UTC (rev 252421)
@@ -29,6 +29,7 @@
 #include "JSTypeInfo.h"
 #include "PropertyDescriptor.h"
 #include "PutDirectIndexMode.h"
+#include "VM.h"
 #include "WriteBarrier.h"
 #include <wtf/HashMap.h>
 
@@ -105,6 +106,12 @@
     
     static constexpr bool needsDestruction = true;
     static void destroy(JSCell*);
+
+    template<typename CellType, SubspaceAccess>
+    static IsoSubspace* subspaceFor(VM& vm)
+    {
+        return &vm.sparseArrayValueMapSpace;
+    }
     
     static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype);
 

Modified: trunk/Source/_javascript_Core/runtime/VM.cpp (252420 => 252421)


--- trunk/Source/_javascript_Core/runtime/VM.cpp	2019-11-13 19:36:39 UTC (rev 252420)
+++ trunk/Source/_javascript_Core/runtime/VM.cpp	2019-11-13 19:40:11 UTC (rev 252421)
@@ -281,8 +281,9 @@
     , internalFunctionSpace ISO_SUBSPACE_INIT(heap, destructibleObjectHeapCellType.get(), InternalFunction) // Hash:0xf845c464
     , nativeExecutableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), NativeExecutable) // Hash:0x67567f95
     , propertyTableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), PropertyTable) // Hash:0xc6bc9f12
+    , ropeStringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSRopeString)
+    , sparseArrayValueMapSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), SparseArrayValueMap)
     , stringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSString) // Hash:0x90cf758f
-    , ropeStringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSRopeString)
     , structureRareDataSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), StructureRareData) // Hash:0xaca4e62d
     , structureSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), Structure) // Hash:0x1f1bcdca
     , symbolTableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), SymbolTable) // Hash:0xc5215afd
@@ -1293,7 +1294,9 @@
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(callbackFunctionSpace, destructibleObjectHeapCellType.get(), JSCallbackFunction) // Hash:0xe7648ebc
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(customGetterSetterFunctionSpace, cellHeapCellType.get(), JSCustomGetterSetterFunction) // Hash:0x18091000
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(errorInstanceSpace, destructibleObjectHeapCellType.get(), ErrorInstance) // Hash:0x3f40d4a
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(functionRareDataSpace, destructibleCellHeapCellType.get(), FunctionRareData)
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(nativeStdFunctionSpace, cellHeapCellType.get(), JSNativeStdFunction) // Hash:0x70ed61e4
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(proxyObjectSpace, cellHeapCellType.get(), ProxyObject)
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(proxyRevokeSpace, destructibleObjectHeapCellType.get(), ProxyRevoke) // Hash:0xb506a939
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(symbolSpace, destructibleCellHeapCellType.get(), Symbol)
 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(unlinkedEvalCodeBlockSpace, destructibleCellHeapCellType.get(), UnlinkedEvalCodeBlock)

Modified: trunk/Source/_javascript_Core/runtime/VM.h (252420 => 252421)


--- trunk/Source/_javascript_Core/runtime/VM.h	2019-11-13 19:36:39 UTC (rev 252420)
+++ trunk/Source/_javascript_Core/runtime/VM.h	2019-11-13 19:40:11 UTC (rev 252421)
@@ -382,8 +382,9 @@
     IsoSubspace internalFunctionSpace;
     IsoSubspace nativeExecutableSpace;
     IsoSubspace propertyTableSpace;
+    IsoSubspace ropeStringSpace;
+    IsoSubspace sparseArrayValueMapSpace;
     IsoSubspace stringSpace;
-    IsoSubspace ropeStringSpace;
     IsoSubspace structureRareDataSpace;
     IsoSubspace structureSpace;
     IsoSubspace symbolTableSpace;
@@ -396,7 +397,7 @@
             return m_##name.get(); \
         return name##Slow(); \
     } \
-    IsoSubspace* name##Slow(); \
+    JS_EXPORT_PRIVATE IsoSubspace* name##Slow(); \
     std::unique_ptr<IsoSubspace> m_##name;
 
 
@@ -407,7 +408,9 @@
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(callbackFunctionSpace)
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(customGetterSetterFunctionSpace)
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(errorInstanceSpace)
+    DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(functionRareDataSpace)
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(nativeStdFunctionSpace)
+    DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(proxyObjectSpace)
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(proxyRevokeSpace)
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(symbolSpace)
     DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(unlinkedEvalCodeBlockSpace)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to