[JSC] Optimize layout of SymbolTable to reduce padding
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Jul 2018 20:46:28 +0000 (20:46 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Jul 2018 20:46:28 +0000 (20:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187437

Reviewed by Mark Lam.

Arrange the layout of SymbolTable to reduce the size from 88 to 72.

* runtime/SymbolTable.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233622 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/SymbolTable.h

index 74fb5b0..ba4e12f 100644 (file)
@@ -1,5 +1,16 @@
 2018-07-07  Yusuke Suzuki  <utatane.tea@gmail.com>
 
+        [JSC] Optimize layout of SymbolTable to reduce padding
+        https://bugs.webkit.org/show_bug.cgi?id=187437
+
+        Reviewed by Mark Lam.
+
+        Arrange the layout of SymbolTable to reduce the size from 88 to 72.
+
+        * runtime/SymbolTable.h:
+
+2018-07-07  Yusuke Suzuki  <utatane.tea@gmail.com>
+
         [JSC] Optimize layout of RegExp to reduce padding
         https://bugs.webkit.org/show_bug.cgi?id=187438
 
index 342af2e..9157d5b 100644 (file)
@@ -696,6 +696,12 @@ private:
 
     Map m_map;
     ScopeOffset m_maxScopeOffset;
+public:
+    mutable ConcurrentJSLock m_lock;
+private:
+    unsigned m_usesNonStrictEval : 1;
+    unsigned m_nestedLexicalScope : 1; // Non-function LexicalScope.
+    unsigned m_scopeType : 3; // ScopeType
     
     struct SymbolTableRareData {
         UniqueIDMap m_uniqueIDMap;
@@ -705,17 +711,10 @@ private:
     };
     std::unique_ptr<SymbolTableRareData> m_rareData;
 
-    bool m_usesNonStrictEval : 1;
-    bool m_nestedLexicalScope : 1; // Non-function LexicalScope.
-    unsigned m_scopeType : 3; // ScopeType
-    
     WriteBarrier<ScopedArgumentsTable> m_arguments;
     WriteBarrier<InferredValue> m_singletonScope;
     
     std::unique_ptr<LocalToEntryVec> m_localToEntry;
-
-public:
-    mutable ConcurrentJSLock m_lock;
 };
 
 } // namespace JSC