Title: [233621] trunk/Source/_javascript_Core
Revision
233621
Author
[email protected]
Date
2018-07-07 13:29:31 -0700 (Sat, 07 Jul 2018)

Log Message

[JSC] Optimize layout of RegExp to reduce padding
https://bugs.webkit.org/show_bug.cgi?id=187438

Reviewed by Mark Lam.

Reduce the size of RegExp from 168 to 144.

* runtime/RegExp.cpp:
(JSC::RegExp::RegExp):
* runtime/RegExp.h:
* runtime/RegExpKey.h:
* yarr/YarrErrorCode.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (233620 => 233621)


--- trunk/Source/_javascript_Core/ChangeLog	2018-07-07 20:29:01 UTC (rev 233620)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-07-07 20:29:31 UTC (rev 233621)
@@ -1,5 +1,20 @@
 2018-07-07  Yusuke Suzuki  <[email protected]>
 
+        [JSC] Optimize layout of RegExp to reduce padding
+        https://bugs.webkit.org/show_bug.cgi?id=187438
+
+        Reviewed by Mark Lam.
+
+        Reduce the size of RegExp from 168 to 144.
+
+        * runtime/RegExp.cpp:
+        (JSC::RegExp::RegExp):
+        * runtime/RegExp.h:
+        * runtime/RegExpKey.h:
+        * yarr/YarrErrorCode.h:
+
+2018-07-07  Yusuke Suzuki  <[email protected]>
+
         [JSC] Optimize layout of ValueProfile to reduce padding
         https://bugs.webkit.org/show_bug.cgi?id=187439
 

Modified: trunk/Source/_javascript_Core/runtime/RegExp.cpp (233620 => 233621)


--- trunk/Source/_javascript_Core/runtime/RegExp.cpp	2018-07-07 20:29:01 UTC (rev 233620)
+++ trunk/Source/_javascript_Core/runtime/RegExp.cpp	2018-07-07 20:29:31 UTC (rev 233621)
@@ -211,7 +211,6 @@
 
 RegExp::RegExp(VM& vm, const String& patternString, RegExpFlags flags)
     : JSCell(vm, vm.regExpStructure.get())
-    , m_state(NotCompiled)
     , m_patternString(patternString)
     , m_flags(flags)
 {

Modified: trunk/Source/_javascript_Core/runtime/RegExp.h (233620 => 233621)


--- trunk/Source/_javascript_Core/runtime/RegExp.h	2018-07-07 20:29:01 UTC (rev 233620)
+++ trunk/Source/_javascript_Core/runtime/RegExp.h	2018-07-07 20:29:31 UTC (rev 233621)
@@ -132,7 +132,7 @@
 
     static RegExp* createWithoutCaching(VM&, const String&, RegExpFlags);
 
-    enum RegExpState {
+    enum RegExpState : uint8_t {
         ParseError,
         JITCode,
         ByteCode,
@@ -151,13 +151,15 @@
     void matchCompareWithInterpreter(const String&, int startOffset, int* offsetVector, int jitResult);
 #endif
 
+    String m_patternString;
     RegExpState m_state { NotCompiled };
-    String m_patternString;
     RegExpFlags m_flags;
+    ConcurrentJSLock m_lock;
     Yarr::ErrorCode m_constructionErrorCode { Yarr::ErrorCode::NoError };
     unsigned m_numSubpatterns { 0 };
     Vector<String> m_captureGroupNames;
     HashMap<String, unsigned> m_namedGroupToParenIndex;
+    std::unique_ptr<Yarr::BytecodePattern> m_regExpBytecode;
 #if ENABLE(REGEXP_TRACING)
     double m_rtMatchOnlyTotalSubjectStringLen { 0.0 };
     double m_rtMatchTotalSubjectStringLen { 0.0 };
@@ -166,12 +168,10 @@
     unsigned m_rtMatchCallCount { 0 };
     unsigned m_rtMatchFoundCount { 0 };
 #endif
-    ConcurrentJSLock m_lock;
 
 #if ENABLE(YARR_JIT)
     Yarr::YarrCodeBlock m_regExpJITCode;
 #endif
-    std::unique_ptr<Yarr::BytecodePattern> m_regExpBytecode;
 };
 
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/runtime/RegExpKey.h (233620 => 233621)


--- trunk/Source/_javascript_Core/runtime/RegExpKey.h	2018-07-07 20:29:01 UTC (rev 233620)
+++ trunk/Source/_javascript_Core/runtime/RegExpKey.h	2018-07-07 20:29:31 UTC (rev 233621)
@@ -32,7 +32,7 @@
 
 namespace JSC {
 
-enum RegExpFlags {
+enum RegExpFlags : int8_t {
     NoFlags = 0,
     FlagGlobal = 1,
     FlagIgnoreCase = 2,

Modified: trunk/Source/_javascript_Core/yarr/YarrErrorCode.h (233620 => 233621)


--- trunk/Source/_javascript_Core/yarr/YarrErrorCode.h	2018-07-07 20:29:01 UTC (rev 233620)
+++ trunk/Source/_javascript_Core/yarr/YarrErrorCode.h	2018-07-07 20:29:31 UTC (rev 233621)
@@ -32,7 +32,7 @@
 
 namespace Yarr {
 
-enum class ErrorCode : unsigned {
+enum class ErrorCode : uint8_t {
     NoError = 0,
     PatternTooLarge,
     QuantifierOutOfOrder,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to